我有一个ASP MVC 5网站,我想管理返回URL以将用户重定向到最后请求的页面,但是当用户登录时,则在加载孔页面之前记录(页面的某些部分)是异步加载的,然后如果他再次尝试登录,他将被重定向到部分内容之一,或者有时他被重定向到加载图像或js文件。 如何控制用户或浏览器(从第一次加载)请求返回URL。 提前谢谢。
答案 0 :(得分:0)
我通过覆盖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" }));
}
}