超帅的菜鸟博主 2017-10-13 01:48 采纳率: 44.8%
浏览 2567
已结题

ASP.NET MVC 身份验证失败后,返回JSON数据

正常的逻辑失败后,应该是跳转 登录页,但是: 异步请求的时候,在登录过期后,返回一个登录页,JS是识别不了的,我想返回JSON数据,应该怎样实现?

  public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.RequestContext.HttpContext.Request.IsAuthenticated)
            {
                // filterContext.Result = new RedirectResult("/account/login");
                    FormsAuthentication.RedirectToLoginPage();//重定向会登录页
            }
            else
            {
                //登录状态获取用户信息
                var cookie = filterContext.HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
                var ticket = FormsAuthentication.Decrypt(cookie.Value);
                AdminModel loginUser = new AdminModel();
                loginUser = new JavaScriptSerializer().Deserialize<AdminModel>(ticket.UserData);

                filterContext.Controller.ViewData["UserName"] = loginUser.UserName;
                filterContext.Controller.ViewData["Portrait"] = loginUser.Portrait;
                filterContext.Controller.ViewData["UserID"] = loginUser.ID;
            }
            base.OnActionExecuting(filterContext);
        }
    }
  • 写回答

6条回答 默认 最新

  • Wayne-Lee 2017-10-13 02:07
    关注

    一般异步请求json时,头信息中的Accept 会是text/json 或者application/json ,你可以据此判断是返回页面还是json数据。需要返回json时设置返回类型是application/json,直接网Response中写入json格式的数据就行了。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型