登录页面的AuthorizeAttribute过滤器设置returnUrl
本文关键字:过滤器 设置 returnUrl AuthorizeAttribute 登录 | 更新日期: 2023-09-27 18:19:12
一切正常;但是,我在系统中发现的错误如下:
-
用户正确登录系统并浏览选项。
-
当用户处于给定视图时会话过期。该视图有一个按钮,该按钮发送到一个局部视图(再次,返回一个局部视图)。
-
一旦用户单击按钮,AuthorizeAttribute将他/她发送回带有给定returnUrl="xxx/yyy/zzz"值的登录页面。
-
用户重新登录,并被正确重定向到局部视图。
我如何方便地检查是否returnUrl属于一个局部视图,因为在这种情况下,我可能只是重定向用户到/Home/Index
首先在局部视图请求操作集ReturnUrl
:
public ActionResult ReturnPartialView ()
{
if (Request != null && Request.IsAjaxRequest())
{
ViewBag.ReturnUrl = Url.Action("Action", "Controller");
.
.
.
}
return null;
}
最后在局部视图:
@using (Html.BeginForm("Action", "Controller", new { returnUrl = ViewBag.ReturnUrl }))
{
.
.
.
}
如果你在寻找更有效的方法来处理这个问题,你应该覆盖授权属性,这里有一些链接可以指导你。
处理ajax调用的特定于身份验证的问题
如何处理对返回结果而不是ViewResult的操作的授权?
ASP。. NET MVC用AJAX重定向到登录页面