来自桌面应用程序的 SharePoint 2013 REST API - 身份验证



我正在尝试从桌面应用程序(跨平台,跨操作系统)使用SharePoint 2013 REST服务。应用程序基本上是应用程序视图中的 HTML 页面。有没有一种简单的方法可以使用HTTP方法对我的调用进行身份验证?

是的,您可以通过 REST 调用进行身份验证并接收摘要。

 string url = "http://Your.SP.Site";
                HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });
                client.BaseAddress = new System.Uri(url);
                string cmd = "_api/contextinfo";
                client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");
                client.DefaultRequestHeaders.Add("ContentType", "application/json");
                client.DefaultRequestHeaders.Add("ContentLength", "0");
                StringContent httpContent = new StringContent("");
                var response = client.PostAsync(cmd, httpContent).Result;
                if (response.IsSuccessStatusCode)
                {
                    string content = response.Content.ReadAsStringAsync().Result;
                    JsonObject val = JsonValue.Parse(content).GetObject();
                    JsonObject d = val.GetNamedObject("d");
                    JsonObject wi = d.GetNamedObject("GetContextWebInformation");
                    retVal = wi.GetNamedString("FormDigestValue");
                }

上面的示例演示如何使用 HttpClient 在 C# 中检索摘要。 此字符串需要作为标头传递给您为进行身份验证而进行的所有其他 rest 调用。 如果需要,您可以通过传入用户名和密码来创建凭据。

我在这里有更多例子:

https://arcandotnet.wordpress.com/2015/04/01/sharepoint-2013-rest-services-using-c-and-the-httpclient-for-windows-store-apps/

你也可以在 JavaScript 中进行这些调用,Microsoft有很多关于此的文档。 还有 .NET 库 Microsoft.SharePoint.Client.DLL (CSOM) 可以简化这种类型的编码,但您必须在客户端上安装该库。

最新更新