【问题标题】:Authentication Error when accessing Sharepoint list via web service通过 Web 服务访问 Sharepoint 列表时出现身份验证错误
【发布时间】:2008-11-25 16:08:44
【问题描述】:

几个月前,我编写了一个 Windows 服务,它可以使用 _vti_bin/lists.asmx 函数 GetListItemChanges ping 一个 Sharepoint 列表。直到几周前,当我的公司将我们的 Sharepoint 实例升级到 SP1 时,它才能正常工作。
现在,每当我的服务尝试访问 Sharepoint 时,我都会收到 401.1 身份验证错误:

错误:

您无权查看此页面
您无权查看 使用您提供的凭据查看此目录或页面。
请 请尝试以下方法:联系网络 网站管理员,如果你相信你 应该可以查看这个目录 或页面。
HTTP 错误 401.1 - 未经授权:访问被拒绝,因为 无效证件。
互联网 信息服务 (IIS)

我已经检查过,我在网站上的权限没有改变。这是我调用列表的代码:

Lists listsService = new Lists();
listsService.Credentials = new NetworkCredential("UserName", "Password", "domain");
Result = listsService.GetListItemChanges("List name", null, dTime.ToString(), null);

我还注意到,我们的农场可能已禁用基本身份验证。我不相信我正在使用它,但我可能弄错了。

【问题讨论】:

    标签: web-services sharepoint authentication


    【解决方案1】:

    根据提供的信息,我怀疑这是一个编程错误。您能否访问托管 SharePoint 网站的服务器上的 IIS 管理器界面?如果是这样,请检查允许的有效身份验证技术。允许匿名连接吗?是否启用了 Windows 集成身份验证? HTTP 基本身份验证?向您的基础架构/SharePoint 人员询问双跳(代理)的可能性。如果是这样,那可能也可以,但是设置起来很麻烦(Kerberos 委托)。 NetworkCredentials 类似乎支持 IIS 支持的所有标准身份验证方案(表单除外):

    http://msdn.microsoft.com/en-us/library/system.net.networkcredential(VS.80).aspx

    您可能需要让基础架构人员为 SharePoint Web 前端设置 SPN:

    http://support.microsoft.com/kb/929650

    但是,我建议不要通过 IIS 管理器更改任何内容。让您的 SharePoint 管理员通过 SharePoint 管理中心对网站允许的身份验证技术进行更改。

    问候, 山姆

    【讨论】:

      【解决方案2】:

      我刚刚发现了一个非常相似的问题并通过 MS 知识库文章解决了它: http://support.microsoft.com/kb/896861

      你应该尝试的一点是:

      方法2:禁用环回检查 请按以下步骤操作:

      1. 单击开始,单击运行,键入 regedit,然后单击确定。
      2. 在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
      3. 右键单击 Lsa,指向新建,然后单击 DWORD 值。
      4. 键入 DisableLoopbackCheck,然后按 ENTER。
      5. 右键单击 DisableLoopbackCheck,然后单击 修改。
      6. 在数值数据框中,键入 1,然后单击确定。
      7. 退出注册表编辑器,然后重新启动计算机。

      这解决了我在所有正常解决方案(将凭据添加到 Web 服务调用)都失败的环境中的相同问题。

      【讨论】:

        【解决方案3】:

        您的内部网络上有代理吗?

        我正在考虑双跳,基本身份验证不容易出现这种情况,但 NTLM 是。如果您有代理,那么双跳是一个问题。如果您直接访问机器并且只能计算一跳(服务到 Web 服务),那么这应该不是问题。

        【讨论】:

          【解决方案4】:

          假设它不是 SSL 或 Basic/Windows 身份验证问题,那么我敢打赌

          测试登录到本地服务器并尝试浏览您的站点。如果您无法使用上面给出的用户名/密码成功浏览,但您可以从远程电脑上浏览,那么这篇文章适合您。

          You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or IIS 6

          http://support.microsoft.com/default.aspx?scid=kb;en-us;896861

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-12
            • 1970-01-01
            • 1970-01-01
            • 2011-01-09
            • 1970-01-01
            • 2012-03-11
            相关资源
            最近更新 更多