如何判断哪个帐户正在尝试访问ASP.NET Web服务?

时间:2009-07-20 20:06:17

标签: asp.net web-services security iis account

我在内部Web服务上调用方法时遇到401(访问被拒绝)。我是从公司内部网上的ASP.NET页面调用它。我已经检查了所有配置,它应该使用具有访问该服务的帐户的集成安全性,但我正在试图找出如何确认它在下连接的帐户。不幸的是,我无法调试生产网络上的代码。在我们的开发环境中,一切正常。我知道设置必须有所不同,但我不知道从哪里开始。有什么建议吗?

4 个答案:

答案 0 :(得分:1)

您查看过IIS日志吗?

答案 1 :(得分:0)

我还建议查看服务器上的安全事件日志以查找身份验证失败。您应该在此处找到失败的授权尝试的足迹。但要注意 - 一秒钟内获得10个安全事件并不罕见,因此理想情况下,您需要能够在请求失败时访问事件日志。

答案 2 :(得分:0)

如果在实例化Web服务时未指定在ASP.NET页面中使用哪些凭据,则我认为默认为 NT_Authority \ Anonymous

如果您正在使用System.Net.CredentialCache,则您的Web服务需要位于受信任的域中,通过HTTPS访问并使用NTLM,Kerberos或Digest Auth,否则它不会从缓存中传递凭据。

http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultnetworkcredentials.aspx http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx

答案 3 :(得分:0)

也许生产服务器在其应用程序池中使用的用户与开发环境不同?我曾经花了一天时间想出那一个。另一个选择是web.config中的(缺乏)模拟