代码之家  ›  专栏  ›  技术社区  ›  Andrew Lewis

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

  •  0
  • Andrew Lewis  · 技术社区  · 15 年前

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

    4 回复  |  直到 15 年前
        1
  •  1
  •   John Saunders    15 年前

    您查看过IIS日志吗?

        2
  •  0
  •   Rob Levine    15 年前

    我还建议在服务器上的安全事件日志中查找身份验证失败的信息。您应该在这里找到失败授权尝试的痕迹。不过要注意——每秒10秒的安全事件并不少见,因此理想情况下,当请求失败时,您需要能够访问事件日志。

        3
  •  0
  •   MyItchyChin JNK    15 年前

    如果在实例化Web服务时未指定要在ASP.NET页中使用的凭据,则我认为它默认为 NT授权\匿名 .

    如果您使用System.NET.CredentialCache,那么您的Web服务需要位于受信任域中,通过HTTPS访问,并使用NTLM、Kerberos或Digest身份验证,否则它不会从缓存传递凭据。

    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

        4
  •  0
  •   René    15 年前

    也许生产服务器对其应用程序池使用的用户与开发环境不同?有一次我花了一天时间弄清楚了。另一个选项是(缺少)web.config中的模拟