我的MVC网页当前使用Session变量进行身份验证。我想尝试一下,所以我可以使用一个自定义的AuthorizeAttribute,这样我就可以用[CustomAuth]来装饰控制器。您如何重定向到自定义AuthorizeAttribute的动作结果
当前RedirectToRouteResult带我到“此页面无法显示”页面。代码打到第一个RedirectToRouteResult。
它不相同的,如果我使用RedirectResult
,我怎么把它引导到登录页面我有吗?
这是我customAuth
public class CustomAuth : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.RequestContext.HttpContext.Session["isAuth"] != null)
{
if (!(bool)filterContext.RequestContext.HttpContext.Session["isAuth"])
{
filterContext.Result = new RedirectToRouteResult(new
RouteValueDictionary(new { controller = "Base", action = "Login" }));
}
}
else
{
filterContext.Result = new RedirectToRouteResult(new
RouteValueDictionary(new { controller = "Base", action = "Login" }));
}
}
}
编辑---
我想使用而不必把这个每一个动作每一个控制器控制器和动作[customAuth]
if (Session["isAuth"] != null)
{
if (!(bool)Session["isAuth"])
{
Session.Clear();
return RedirectToAction("Login", "Base");
}
}
else return RedirectToAction("Login", "Base");
有没有办法做到这一点与匿名身份验证?
的路径是什么,以你的登录页面? – Luke
基地/登录,如果我把_Login的行动,我需要http:// localhost:/ Base/_Login与资源无法找到页面,这是预期的原因没有_Login。但是,如果我把基地/登录它不重定向它只显示无法显示页面。 – user1314413
您能够成功导航到/ base/login吗?另外,你的控制器实际上是否叫做'BaseController'? – Luke