未经身份验证的用户访问具有location元素的URL无效

时间:2013-05-15 15:37:23

标签: asp.net asp.net-authentication asp.net-authorization

我正在为我的网络应用程序使用ASP.NET表单身份验证。我有一个文件夹,我想授予其未经身份验证的用户访问权限。我使用的是IIS 7,应用程序池处于集成模式。作为测试,我在ScriptsHandlers文件夹中创建了hello.txt。当我尝试使用IIS浏览它时,尽管有location元素,我仍会被重定向到登录页面。此外,当我运行我的应用程序时,在查询存储在该文件夹中的asmx Web服务时,我收到401 Unauthorized错误。 这是我的web.config的片段:

<location path="ScriptsHandlers">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>
  <location allowOverride="true">
    <system.web>
      <authentication mode="Forms">
        <forms loginUrl="Views/Login.aspx" name=".ASPXFORMSAUTH" cookieless="UseUri" slidingExpiration="true" />
      </authentication>
      <authorization>
        <deny users="?" />
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

1 个答案:

答案 0 :(得分:0)

允许访问ScriptsHandlers文件夹中的所有内容

ScriptsHandlers Or /ScriptsHandler depending on where you keep this web.config
<location path="ScriptsHandlers">
   <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>