首页 新闻 会员 周边

MVC 身份验证的问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2018-02-09 16:18

问题描述:在使用过滤,进行身份验证的时候,没有登录的话直接跳转到登录页,这是没有问题的逻辑,可是;在实际代码中却不是这样的;比如在 你是在order 控制中进来的,没有登录将会直接跳转到login 页面,开始 order 控制中的 action 方法还会执行;请大神,指教一下 如何终止order 的请求。

        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            LoginModel loginModel = Session["Login"] as LoginModel;

            if (loginModel == null)
            {               

                //重定向至登录页面
                filterContext.Result = RedirectToAction("Index", "Login");
                filterContext.HttpContext.Response.End();
                //filterContext.Result = new EmptyResult();

                return;
            }
            else
            {
                ViewBag.UserName = loginModel.UserName;
            }
        }
mvc
IT小伙儿的主页 IT小伙儿 | 初学一级 | 园豆:11
提问于:2018-02-09 14:07
< >
分享
所有回答(2)
0

HttpResponse.Redirect

这个方法的第二个参数为true就可以了

刘宏玺 | 园豆:14020 (专家六级) | 2018-02-09 14:35

试过了 不可以

支持(0) 反对(0) IT小伙儿 | 园豆:11 (初学一级) | 2018-02-09 16:16
0

解决方案:

  filterContext.Result = new RedirectResult("/TickeOrderExce/Login");                  
                return;

这样就可以了 终止了 其实 return 就是可以的;

IT小伙儿 | 园豆:11 (初学一级) | 2018-02-09 16:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册