シナリオは次のとおりです。カスタム認証とメンバーシッププロバイダーを使用しているAsp.Netアプリケーションがありますが、アプリケーション内の特定のフォルダーへの完全な匿名アクセス(つまり)を許可する必要があります。
IISマネージャーでは、フォルダーの認証モードを設定できますが、設定はC:\Windows\System32\inetsrv\config\applicationHost.config
ファイル ここで説明
インストールを簡単にするために、web.config内でこれを設定できれば素晴らしいのですが、2、3回試行した後、これは不可能だと思います。
そうでなければ誰もが知っていますか?
どうもありがとう
つかいます <location>
構成タグ、および<allow users="?"/>
匿名のみを許可するか<allow users="*"/>
すべてのために:
<configuration>
<location path="Path/To/Public/Folder">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>
最初のアプローチは、<location>
構成タグを使用してweb.configを変更し、<allow users="?"/>
を使用して匿名または<allow users="*"/>
をすべて許可することです。
<configuration>
<location path="Path/To/Public/Folder">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
</configuration>
そのアプローチがうまくいかない場合は、IIS applicationHost.config。
まず、C:\ Windows\System32\inetsrv\config\applicationHost.configでanonymousAuthenticationセクションのoverrideModeDefaultを「Deny」から「Allow」に変更します。
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
overrideMode
はIISのセキュリティ機能です。 applicationHost.configのシステムレベルでオーバーライドが許可されていない場合、それを有効にするためにweb.configでできることは何もありません。ターゲットシステムでこのレベルのアクセス権がない場合は、ホスティングプロバイダーまたはシステム管理者と議論する必要があります。
第二に、overrideModeDefault="Allow"
を設定した後、web.configに以下を追加できます。
<location path="Path/To/Public/Folder">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
<location path="ForAll/Demo.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
さらに:Webサイトを介してそのフォルダーに何かを書き込みたい場合は、フォルダーにIIS_User権限を付与する必要があります
動作させるには、次のようにディレクトリを作成します。
プロジェクトの公開制限
そこで、パブリックフォルダーのwebconfigを編集しました。
<location path="Project/Public">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
そして、私の制限付きフォルダーの場合:
<location path="Project/Restricted">
<system.web>
<authorization>
<allow users="*"/>
</authorizatio>
</system.web>
</location>
*および?の仕様については、こちらをご覧ください。
https://docs.Microsoft.com/en-us/iis/configuration/system.webserver/security/authorization/add
お役に立てば幸いです。
「Users」(VS 2015、C#)という特定のフォルダーにweb.configを追加し、次のコードを追加しました
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
最初は場所タグを使用しましたが、機能しませんでした。