コントローラがAuthorizeAttribute
で保護されています。認証が失敗すると、空のページになります。私がOnAuthorization()
をオーバーライドすると、base.OnAuthorization()
をfilterContext.Result
と呼んだ後で、それがわかることがあります(なぜ?)。私がOnException()
を上書きし、ブレークポイントを設定した場合、決してヒットしません。それはどのように動作するはずです説明することができますか?特定のページにリダイレクトするにはどうすればよいですか?失敗した認証の試行をログに記録する場所はどこにありますか(カスタムフィルタを書き留めない方が良い)私はMVC 3 RC1を使用します。認証モードがWindowsに設定されている場合のASP.NET MVCでのAuthorizeAttribute動作
1
A
答えて
7
AuthorizeAttribute.HandleUnauthorizedRequestメソッドをオーバーライドする必要があります。あなたが代わりにRedirectResult(またはご希望のロジックに応じて、他のいくつかの結果を)する結果を設定することをお勧めします
protected virtual void HandleUnauthorizedRequest(AuthorizationContext filterContext) {
// Returns HTTP 401 - see comment in HttpUnauthorizedResult.cs.
filterContext.Result = new HttpUnauthorizedResult();
}
:ここではデフォルトの実装です。これはロギングにも適しています。
関連する問題