2011-10-18 261 views
1

我有一个asp.net网站,我需要同时使用Windows身份验证和匿名身份验证。Windows身份验证和表单身份验证

我需要Windows身份验证,因为我需要获取登录用户的用户名,而且该网站运行的Web服务必须匿名访问。

如果我打开Windows身份验证我可以得到用户,这工作正常,但网站调用Web服务返回401错误。如果我也添加了匿名访问,那么使用Web服务的网站可以正常工作,但我无法再获取登录用户的用户名。

我该如何获得最好的 - 即获取用户名,但不杀死我的web服务。

回答

1

您可以添加以下到您的目录树

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

内禁止访问特定位置,同时保持主网站下的Windows身份验证的控制。

请参见:http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx

+0

酷 - 在听起来像一个完整的小白的风险,应path.to.web.service是什么格式? – Ben

+0

目录/ service.asmx或只是service.asmx为你可能 – ChrisBint

+0

图例 - 谢谢克里斯。 – Ben