我的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