我们拥有一个在IIS中受表单身份验证保护的网站。我们希望所有人无需任何身份验证即可访问本网站的一页。
我看到的所有资源都提到使用标签,但是由于某些原因,它对我们不起作用。
web.config:
<configuration>
<location path="public.htm">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="UserLogin.aspx" />
</authentication>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</configuration>
public.htm和UserLogin.aspx都在同一文件夹中。当我们浏览public.htm时,我们得到401.2。
如果禁用表单身份验证,则可以访问public.htm。
更新(5/21):
禁用了表单身份验证,但仍然出现401.2错误。
<configuration>
<location path="public.htm">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="UserLogin.aspx" />
</authentication>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</configuration>
听起来好像您的匿名身份验证已被禁用,或者您当前的登录用户无权查看public.htm。
如果您将其托管在VS中,请确保已选择已启用匿名身份验证,并且您当前的登录用户具有访问htm文件的权限。
如果您将其托管在IIS中,请确保已启用匿名身份验证,并且授权规则看起来像]
<authorization>
<deny users ="?" />
<allow users = "*" />
</authorization>
applicationhost.config中的身份验证类似于
<location path="Sitename">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
然后是public.htm的授权规则。
<location path="public.htm">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
请记住要授予IUSER读取权限以访问public.htm。