禁用asp .net中的Web身份验证

时间:2011-06-07 07:35:39

标签: asp.net authentication web-config

我使用ASP .Net 4,我有一个使用表单身份验证的项目

<authentication mode="Forms">
  <forms loginUrl="~/" timeout="7200" />
</authentication>

我在同一个项目中有一个Web服务,我想为一个页面(Web服务)禁用此Web身份验证

我试过那段代码:

<location path="WSBaseCentrale.asmx" allowOverride="false">
  <system.web>
    <authorization>
      <allow users="?"/>
    </authorization>
  </system.web>
</location>

但我有一个302重定向到表单登录。 是否可以禁用它?

修改

我试过了,并没有更好的效果。 当我访问该页面时(http://localhost/App/WSBaseCentrale.asmx),我总是被重定向到具有HTTP 302重定向的表单页面(http:// localhost / App /)。

<location path="WSBaseCentrale.asmx">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>

修改2

其他一些事实:

  • iis中的匿名用户已激活。
  • 当我使用firebug时(我禁用缓存并删除co​​okie),我每次都可以重现问题。此外,我可以在响应头中看到服务器向浏览器发送Location指令。

3 个答案:

答案 0 :(得分:2)

这适用于我的网站

<location path="Services">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>

答案 1 :(得分:2)

删除allowOverride="false"

同时删除<allow users="?"/>并将其添加到<allow users="*"/>

最后,请确保您的webservice位于根目录中,否则您必须相应地指定路径。

答案 2 :(得分:1)

<location path="WSBaseCentrale.asmx">
   <system.web>
     <authorization>
       <allow users="*"/>
     </authorization>
   </system.web>
</location>
你尝试过这个吗?


此外,您应该检查IIS的匿名身份验证设置,可能是您无法匿名查看您的网站。