通过Web服务访问Sharepoint列表时出现身份验证错误

时间:2008-11-25 16:08:45

标签: web-services sharepoint authentication

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

错误:

  

您无权查看此页面您没有权限   使用您提供的凭据查看此目录或页面。
请   请尝试以下操作:联系Web   网站管理员,如果你相信你   应该能够查看此目录   或页面。
HTTP错误401.1 -   未经授权:由于访问被拒绝   无效证件。
互联网   信息服务(IIS)

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

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

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

4 个答案:

答案 0 :(得分:1)

根据提供的信息,我怀疑这是编程错误。您是否可以访问托管SharePoint站点的服务器上的IIS管理器界面?如果是,请检查允许的有效身份验证技术。是否允许匿名连接? Windows集成验证是否已启用? HTTP Basic身份验证?向您的基础架构/ 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管理中心对网站允许的身份验证技术进行更改。

此致 萨姆

答案 1 :(得分:1)

我刚刚发现了一个非常类似的问题,并且由于MS KB文章解决了这个问题: http://support.microsoft.com/kb/896861

你应该尝试的是这个:

  

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

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

这解决了我所拥有的环境中的所有常规解决方案(向Web服务调用添加凭据)失败的问题。

答案 2 :(得分:0)

您的内部网络是否有代理?

我正在考虑双跳,而Basic Auth不容易这样,但NTLM是。如果您有代理,那么双跳是一个问题。如果您直接访问该计算机并且只能计算一跳(服务到Web服务),那么这应该不是问题。

答案 3 :(得分:0)

假设它不是SSL或基本/ Windows身份验证问题,那么我打赌这个

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

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