現在、MVC Webページはセッション変数を使用して認証されています。私はカスタムAuthorizeAttributeを使用できるようにしようとしたかったので、[CustomAuth]でコントローラを飾ることができました。カスタムAuthorizeAttributeからアクション結果にリダイレクトする方法
現在、RedirectToRouteResultが「このページは表示できません」ページに移動しています。コードは、最初のRedirectToRouteResultに当たっています。
私はそれが私が持っているログインページに指示する取得方法にRedirectResult
を使用する場合、それは同じことをしますか?
この
は私が[customAuth]の代わりに、すべてのコントローラにすべてのアクションでこれを入れて持つのコントローラとアクションに使用したい私のcustomAuthpublic 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" }));
}
}
}
編集---
ある
if (Session["isAuth"] != null)
{
if (!(bool)Session["isAuth"])
{
Session.Clear();
return RedirectToAction("Login", "Base");
}
}
else return RedirectToAction("Login", "Base");
匿名認証でこれを行う方法はありますか?
に登録ザ・ – Luke
base/Login、アクションの_Loginを置くと、http:// localhost:/ Base/_Loginにリソースが見つかりませんページが見つかりません。これは_Loginが存在しないためです。しかし、ベース/ログインを置くと、リダイレクトされないだけでページページを表示できないことが示されます。 – user1314413
/base/loginにナビゲートできますか?また、あなたのコントローラは実際に 'BaseController'と呼ばれていますか? – Luke