Redirect 管理表单身份验证中的返回url

Redirect 管理表单身份验证中的返回url,redirect,asp.net-mvc-5,form-authentication,Redirect,Asp.net Mvc 5,Form Authentication,我有一个ASP MVC 5网站,我想管理返回url以将用户重定向到上一个请求的页面,但是当用户登录时,然后在加载孔页面之前登录(页面的某些部分是异步加载的),然后如果他再次尝试登录,他将被重定向到部分内容之一,或者有时他被重定向到加载图像或js文件。 如何控制返回url是由用户还是由浏览器请求的(从第一次加载开始)。 提前感谢。我通过覆盖Authorize属性解决了这个问题: public class CustomAuthorize : AuthorizeAttribute {

我有一个ASP MVC 5网站,我想管理返回url以将用户重定向到上一个请求的页面,但是当用户登录时,然后在加载孔页面之前登录(页面的某些部分是异步加载的),然后如果他再次尝试登录,他将被重定向到部分内容之一,或者有时他被重定向到加载图像或js文件。 如何控制返回url是由用户还是由浏览器请求的(从第一次加载开始)。
提前感谢。

我通过覆盖Authorize属性解决了这个问题:

 public class CustomAuthorize : AuthorizeAttribute
    {
        public CompanyServiceBase CompanyService { get; set; }

        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                string returnUrl = null;
                var controller = (System.Web.Mvc.Controller)filterContext.Controller;
                if (!controller.Request.IsAjaxRequest())
                {
                    returnUrl = controller.Request.Url.AbsoluteUri.ToString();
                }

                filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary()
            {
                { "client", filterContext.RouteData.Values[ "client" ] },
                { "controller", "Account" },
                { "action", "Login" },
                { "ReturnUrl", returnUrl }
            });
            }
            else
            {
                filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "AccessDenied", controller = "Main" }));
            }
        }