使用SharePoint Web Services进行身份验证

问题描述 投票:2回答:1

我试图从asp.net应用程序调用GetListItems。

System.Net.NetworkCredential userDefined = new System.Net.NetworkCredential("username","password","domain");
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
ndQueryOptions.InnerXml = "";
ndViewFields.InnerXml = "";

WebReference.Lists lists = new WebReference.Lists();

lists.Credentials = userDefined;
XmlNode responseNode = lists.GetListItems("My List Name", null, ndQuery, ndViewFields, null, ndQueryOptions, null);

我收到一个错误:

the request failed with http status 401 unauthorized

我搜索了SO并尝试了我发现的内容:

WebReference.UseDefaultCredentials = true;

WebReference.Credentials = System.Net.CredentialCache.DefaultCredentials;

<identity impersonate="true"  userName="mydomain\username" password="password" />

我试过的一切都得到了同样的错误信息。谁会知道我可能会缺少什么?

c# asp.net web-services sharepoint
1个回答
0
投票

如果您的sharepoint使用浏览器身份验证,则需要预先验证

svc.PreAuthenticate = true;
svc.Credentials = new System.Net.NetworkCredential(username, password);

http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/ac38e0da-c828-48b8-aa3f-fb22f30ce581

如果它形成了auth,或者除了NTLM以外的任何东西,那么还有更多的混乱 - 尽管到目前为止,我总是回应403

© www.soinside.com 2019 - 2024. All rights reserved.