iis6 に展開する asp.net-mvc を使用してアプリを作成しています。フォーム認証を使用しています。通常、ユーザーが適切な承認なしにリソースにアクセスしようとすると、ログイン ページにリダイレクトする必要があります。FormsAuth はこれを簡単に実行してくれます。
問題: 現在、コンソール アプリからアクションにアクセスしています。リクエストをログインページにリダイレクトする代わりに、ステータス 401 でこのアクションを応答させる最も簡単な方法は何ですか?
コンソール アプリが透過的ではなく、この 401 StatusCode に反応できるようにしたいと考えています。また、デフォルトのままにして、不正なリクエストをログイン ページの動作にリダイレクトしたいと思います。
注: テストとして、これを global.asax に追加しましたが、フォーム認証をバイパスしませんでした:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpContext.Current.SkipAuthorization = true;
}
@デールとアンディ
MVC プレビュー 4 で提供されている AuthorizeAttributeFilter を使用しています。これは HttpUnauthorizedResult を返しています。この結果は、statusCode を 401 に正しく設定しています。問題は、私が理解しているように、asp.net が応答を傍受し (401 としてタグ付けされているため)、単に通過させるのではなく、ログイン ページにリダイレクトしていることです。特定の URL に対してこのインターセプトをバイパスしたい。