7

ユーザーがログインしておらず、 とマークされたアクションを要求した[Authorize]場合、応答は Account/LogOn アクション (ステータス コード 302 Found) へのリダイレクトです。

代わりに、応答をステータス コード 403 Forbidden にする方法はありますか?

4

2 に答える 2

10

から継承するアクションフィルターを作成しますAuthorizeAttribute。次に、このメソッドをオーバーライドします。

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{ 
   Response.StatusCode = 403;
   Response.Status = "Forbidden";
   Response.StatusDescription = "Forbidden";
   Response.End();
   Response.Close();

}
于 2011-01-19T21:01:58.767 に答える
0

ユーザーがログインしていない場合、より適切なステータス コードは 401:Unauthorized です。これは、デフォルトで AuthorizeAttribute が返すものです。

FormsAuthenticationModule は、このリターン コードをキャッチし、リダイレクトに変換します。無効にできる場合 (またはロードすることさえできない場合)、これは呼び出し元に返されます。

于 2011-10-20T20:44:44.683 に答える