.net wif表单身份验证甚至重定向匿名用户

.net wif表单身份验证甚至重定向匿名用户,.net,redirect,forms-authentication,wif,.net,Redirect,Forms Authentication,Wif,我有一个使用表单身份验证的web应用程序。我有一个页面,我不想重定向到登录表单。我为那一页准备了这个: <location path="service1.svc"> <system.web> <authorization> <allow users="?"/> </authorization> </system.web> </location> 根据我的理解,如果一个用户

我有一个使用表单身份验证的web应用程序。我有一个页面,我不想重定向到登录表单。我为那一页准备了这个:

<location path="service1.svc">
  <system.web>
    <authorization>
      <allow users="?"/>
    </authorization>
  </system.web>
</location>

根据我的理解,如果一个用户没有经过身份验证(匿名),并且他们试图访问page1.svc,那么他们将不会被重定向到登录页面,但在我的应用程序中,他们仍然是


我是不是遗漏了什么?

我发现了!表单身份验证模块的工作方式是检查EndRequest方法中的任何传出响应,如果状态代码为401(未经授权),则将状态代码更改为320,并将其重定向到登录页面。在我的例子中,我有一个单独的模块,在forms auth页面获得响应之前对其进行操作,并偶尔将状态代码设置为401以启动ntlm身份验证交换。但是forms auth在交换发生之前拦截了它

解决方法是使用global.aspx文件中的EndRequest方法将状态代码设置回401,因为此时forms auth已经对其进行了操作。在我的例子中,我没有首先将状态代码设置为401,而是将其设置为407,然后在endRequest方法中捕获它,将其更改回401,同时避免使用forms auth模块