使使用表单身份验证的公共页面可访问

问题描述 投票:0回答:1

我们拥有一个在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>
authentication iis web-config authorization forms-authentication
1个回答
0
投票

听起来好像您的匿名身份验证已被禁用,或者您当前的登录用户无权查看public.htm。

如果您将其托管在VS中,请确保已选择已启用匿名身份验证,并且您当前的登录用户具有访问htm文件的权限。

enter image description here

如果您将其托管在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。

© www.soinside.com 2019 - 2024. All rights reserved.