一切都很好;但是,我在系统中发现的错误如下:
用户已正确登录系统并浏览选项。
当用户在给定视图中时,会话到期。该视图有一个发布到部分视图的按钮(再次返回部分视图)。
一旦用户点击该按钮,AuthorizeAttribute会将他/她发回给具有给定returnUrl =“xxx / yyy / zzz”值的登录页面。
用户再次登录,并被正确重定向到部分视图。
我的问题如下。由于用户被重定向到部分视图,他/她无法看到整个页面(菜单,页脚等 - >主页面内容)。
如何轻松检查returnUrl是否属于部分视图,因为在这种情况下我可能只是将用户重定向到/ Home / Index。
答案 0 :(得分:1)
首先在部分查看请求操作集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 }))
{
.
.
.
}
如果您正在寻找更有效的方法来处理此问题,您应该覆盖授权属性,这里有一些链接可以指导您。
Handling authentication-specific issues for AJAX-calls
How do you deal with authorisation on actions that return results other than ViewResult?