【问题标题】:Unauthorised access when accessing WSS Lists.asmx web service using AD accounts使用 AD 帐户访问 WSS Lists.asmx Web 服务时未经授权的访问
【发布时间】:2010-02-11 20:18:45
【问题描述】:

我遇到了一个问题,我尝试访问远程或本地站点中的 Lists.asmx Web 服务并收到 401 错误。需要明确的是,这是 /_vti_bin/Lists.asmx。设置是我有一个 WSS 3.0 站点,它通过肥皂连接到另一个 WSS/MOSS 站点的列表服务。在我们的舞台环境中,这两个站点位于同一个盒子上,但在开发中它们是分开的。无论情况如何,它们都在同一个域中。最初(在重建之前)Web 服务调用在 dev 中运行良好,但不是在阶段,虽然令人费解,但至少证实了我的 Web 服务实现是正确的,问题是授权之一。这是我最初的 Lists 服务设置代码:

new Lists
{
     Url = Utility.AppSetting("WSS.Url", true),
     Credentials = new NetworkCredential
     {
           UserName = Utility.AppSetting("WSS.UserName", true),
           Password = Utility.AppSetting("WSS.Password", true),
           Domain = Utility.AppSetting("WSS.Domain", true)
     }
};

我手动指定服务器上完全访问帐户的域凭据。但是我怀疑上面的代码没有做任何事情,服务只是使用 AD 进行身份验证,即我的应用程序池帐户(在 dev 上是我的超级开发帐户)。为了减轻发布过程的负担,我希望能够显式地设置服务的凭据,而不是依赖于基础设施官员不得不让他的应用程序池帐户读取/Web 服务访问远程 wss 实例。

干杯

【问题讨论】:

  • 仅供参考,该实用程序方法只是屏蔽配置管理器并在字段不存在时抛出详细异常(这就是标志的用途)

标签: web-services sharepoint windows-authentication


【解决方案1】:

试试:

Credentials = System.Net.CredentialCache.DefaultCredentials

或者

Credentials = System.Net.CredentialCache.DefaultNetworkCredentials

【讨论】:

  • 这两个设置不会都使用默认的 AD 帐户进行身份验证吗?这个我不想做,我要显式登录。
【解决方案2】:

作为参考,问题是环回检查是 Server2k8 的一个非常大的问题。禁用它修复了错误。

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多