Allow anonymous authentication for a single folder in web.config? Allow anonymous authentication for a single folder in web.config? asp.net asp.net

Allow anonymous authentication for a single folder in web.config?


The first approach to take is to modify your web.config using the <location> configuration tag, and <allow users="?"/> to allow anonymous or <allow users="*"/> for all:

<configuration>   <location path="Path/To/Public/Folder">      <system.web>         <authorization>            <allow users="?"/>         </authorization>      </system.web>   </location></configuration>

If that approach doesn't work then you can take the following approach which requires making a small modification to the IIS applicationHost.config.

First, change the anonymousAuthentication section's overrideModeDefault from "Deny" to "Allow" in C:\Windows\System32\inetsrv\config\applicationHost.config:

<section name="anonymousAuthentication" overrideModeDefault="Allow" />

overrideMode is a security feature of IIS. If override is disallowed at the system level in applicationHost.config then there is nothing you can do in web.config to enable it. If you don't have this level of access on your target system you have to take up that discussion with your hosting provider or system administrator.

Second, after setting overrideModeDefault="Allow" then you can put the following in your web.config:

<location path="Path/To/Public/Folder">  <system.webServer>    <security>      <authentication>        <anonymousAuthentication enabled="true" />      </authentication>    </security>  </system.webServer></location>


Use <location> configuration tag, and <allow users="?"/> to allow anonymous only or <allow users="*"/> for all:

<configuration>   <location path="Path/To/Public/Folder">      <system.web>         <authorization>            <allow users="?"/>         </authorization>      </system.web>   </location></configuration>


<location path="ForAll/Demo.aspx"> <system.web>  <authorization>    <allow users="*" />  </authorization> </system.web></location>

In Addition: If you want to write something on that folder through website , you have to give IIS_User permission to the folder