Windows認証を使用してASP.netアプリケーションの1つ以上のサブフォルダーでWindows認証を無効にすることは可能ですか?
例えば:
Webサイトには、アプリケーション全体の一部を含む他のいくつかのフォルダーが含まれています:/ frontend、/ backend、/ login
Binフォルダーは、これらのサブフォルダーと同じレベル、つまりWebサイトのルートにあります。
これらのサブフォルダーにはすべて、Webサイトのルートのbinフォルダーにあるバイナリを使用するページが含まれています。
ユーザーは、バックエンドフォルダーのページにアクセスするときにWindows資格情報を入力する必要がありますが、ログインフォルダーまたはフロントエンドフォルダーのページにアクセスするときは入力しないでください。
IIS7を使用しています
何か案は?
解決策を見つけました:
ApplicationHost.configファイルを調整し、anonymousAuthentication enwindowsAuthenticationセクションエントリの「overrideModeDefault」を「Allow」に変更しました
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
Windows認証から除外する必要のあるすべてのフォルダー/ファイルのロケーションタグをweb.configに追加しました
<location path="pathToDirOrFile">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
これらのフォルダーのそれぞれに、IDの偽装を無効にする個別のweb.configファイルが含まれていることを確認してください
<configuration>
<system.web>
<identity impersonate="false" />
</system.web>
</configuration>
Web.configのlocationタグを使用して認証を制御するか、適用する必要のある設定を指定して、関連するサブフォルダーに別のweb.configを配置することができます。
IIS内のリソース(フォルダーまたは個々のファイル)へのアクセスを制御することもできます。したがって、競合するルールが設定されていないことを確認する必要があります。