2009-08-20 94 views
4

我正在尝试获取“用户信息列表”的内容。此列表只能作为管理员用户使用。我有一个登录的管理员用户,然后一个方法执行以下操作:Sharepoint通过web服务访问“用户信息列表”

var xmlDoc = new XmlDocument(); 
var query = xmlDoc.CreateElement("Query"); 
query.InnerXml = "<Where><Eq><FieldRef Name='ContentType' /><Value Type='Choice'>Person</Value></Eq></Where>"; 
XmlElement viewFields = xmlDoc.CreateElement("ViewFields"); 
viewFields.InnerXml = "<FieldRef Name='Title' />"; 
XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions"); 
var items = ws.GetListItems("User Information List", "", query, viewFields, string.Empty, queryOptions, "8A391AE3-2783-489B-8BDF-D2AE971D73CD"); 

我的目录名称是正确的,所以是GUID我通过SharePoint资源管理器

<List DocTemplateUrl="" DefaultViewUrl="/_catalogs/users/detail.aspx" MobileDefaultViewUrl="" ID="{8A391AE3-2783-489B-8BDF-D2AE971D73CD}" Title="User Information List" Description="All people." ImageUrl="/_layouts/images/users.gif" Name="{8A391AE3-2783-489B-8BDF-D2AE971D73CD}" BaseType="0" FeatureId="" ServerTemplate="112" Created="20080430 02:48:38" Modified="20090819 08:31:52" LastDeleted="20090604 12:32:50" Version="141" Direction="none" ThumbnailSize="" WebImageWidth="" WebImageHeight="" Flags="41971988" ItemCount="46" AnonymousPermMask="0" RootFolder="/_catalogs/users" ReadSecurity="1" WriteSecurity="1" Author="1" EventSinkAssembly="" EventSinkClass="" EventSinkData="" EmailInsertsFolder="" EmailAlias="" WebFullUrl="/" WebId="767c0b20-058d-4b53-8362-81e005bf5098" SendToLocation="" ScopeId="64857900-37cf-431c-be07-5528d1ae46af" MajorVersionLimit="0" MajorWithMinorVersionsLimit="0" WorkFlowId="" HasUniqueScopes="False" AllowDeletion="False" AllowMultiResponses="False" EnableAttachments="True" EnableModeration="False" EnableVersioning="False" Hidden="True" MultipleDataList="False" Ordered="False" ShowUser="True" EnableMinorVersion="False" RequireCheckout="False" /> 

我htat从下面我正在返回以下错误:

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <soap:Body> 
      <soap:Fault> 
       <faultcode>soap:Server</faultcode> 
       <faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring> 
       <detail> 
        <errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">The system cannot find the file specified. (Exception from HRESULT: 0x80070002)</errorstring> 
       </detail> 
      </soap:Fault> 
     </soap:Body> 
    </soap:Envelope> 

你知道为什么我得到这个错误吗?

更新

线

var items = ws.GetListItems("User Information List", "", query, viewFields, string. 

是扔在C#代码的异常。所引发的异常是:

Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown. 

不是一个很大的帮助......

更新2

,我发现这个网站上http://www.aidangarnish.net/blog/post/2008/04/Retrieving-items-from-a-MOSS-2007-list-using-web-services.aspx,改变了我的代码:

var node = ws.GetListItems("User Information List", String.Empty, null, null, String.Empty, null, null); 

我现在正在查看结果!仍然不知道我最初的查询有什么问题,所以问题的立场...

+0

可以使用SPServices了。 – trgraglia 2011-03-09 14:09:08

回答

1
var node = ws.GetListItems("User Information List", String.Empty, null, null, String.Empty, null, null); 

似乎从试错中工作得很好。

1

我不知道这会回答你的问题,但是,我有更多的运气,包括不必登录为管理员,如果您访问使用用户信息表:

  • “的UserInfo”

相反的:

  • “用户信息列表”

它这里的文件中列出: http://msdn.microsoft.com/en-us/library/lists.lists.getlist.aspx

LISTNAME 包含标题或的GUID列表的字符串。查询UserInfo表时,该字符串包含“UserInfo”。

也许给一个镜头。

+0

这是我的列表listService.GetList(“UserInfo”);但我需要它里面的物品...... – Rupert 2009-08-20 15:21:19

+0

当然,但在上面的代码中使用相同的技术来获取物品。 – 2009-08-20 15:49:28

+0

与上面相同的错误... – Rupert 2009-08-20 15:55:03

3

如果您遇到问题“系统找不到指定的文件(来自HRESULT:0x80070002的异常)”,请尝试将最后一个参数“webId”设置为空。

看看微软的Web服务的规范说:

webID: Optional. A string containing the GUID of the parent Web site for the list surrounded by curly braces ({}). Setting this parameter to null means the Web site specified by the URL property of the service will be used, and if the URL property of the service is not specified, the root Web site will be used.

来源:http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems(v=office.12).aspx

相关问题