4

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 リクエスト コードを返したように見えますか? フォーム認証を完全に無効にしたり、他に見落としたりしませんでしたか?

4

1 に答える 1

0

Windows 認証を統合していない場合、または統合していない場合は、匿名認証を有効にしてみてください。匿名認証を使用している場合は、IIS が実行されていることを確認してください。

また、フォルダのプロパティを確認し、権限が追加されていることを確認してください。

于 2013-08-10T03:07:03.183 に答える