ASP.NET アプリケーションでフォーム認証を完全に無効にして、カスタム認証モジュールに置き換えるにはどうすればよいですか?
web.config で認証モードを None に設定しました
<authentication mode="None" />
独自の認証モジュールを添付
<add name="CustomAuthenticationModule" type="CustomAuthenticationModule, Auth"/>
カスタム認証モジュールには
application.AuthenticateRequest += new EventHandler(this.Application_AuthenticateRequest);
application.PostAuthenticateRequest += new EventHandler(this.Application_PostAuthenticateRequest);
application.AuthorizeRequest += new EventHandler(this.Application_AuthorizeRequest);
1 つのことを除いて、すべてが機能しているように見えます...保護されたページにアクセスしようとすると、管理者の役割が必要です
<location path="SomePage.aspx">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
私のハンドラーは AuthorizeRequest イベントをキャッチしません。代わりに、この私のリクエストはブラウザに返されます
アクセスが拒否されました。エラー メッセージ 401.2.: 認証されていません: サーバーの構成が原因でログオンに失敗しました。指定した資格情報と、Web サーバーで有効になっている認証方法に基づいて、このディレクトリまたはページを表示する権限があることを確認してください。さらに支援が必要な場合は、Web サーバーの管理者に問い合わせてください。
他のハンドラーがリクエストを処理し、Unauthorized リクエスト コードを返したように見えますか? フォーム認証を完全に無効にしたり、他に見落としたりしませんでしたか?