gpt4 book ai didi

c# - 使用 office 365/SharePoint 在线验证客户端

转载 作者:太空狗 更新时间:2023-10-29 22:04:26 24 4
gpt4 key购买 nike

我有一个使用 SharePoint Web 服务 (list.asmx) 的客户端应用程序。最近 SharePoint 迁移到 SharePoint Online。现在身份验证失败。

这可能是因为 SharePoint Online 中的身份验证机制不同。我引用了文章http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx进行身份验证。但是由于某种原因,我现在收到身份验证错误。

请注意,我不希望弹出身份验证窗口,因为我的客户端是一项服务。

谁能给我一些关于如何使用 SharePoint Online 进行身份验证的指针/示例工作应用程序?

阿图尔苏里卡

最佳答案

SharePoint Online (SPO) 使用基于声明的身份验证 模式。微软发布SharePoint Online Client Components SDK其中包含 SharePointOnlineCredentials class可用于 SPO 中的 SharePoint Web 服务身份验证。

如何在 SharePoint Online (SPO) 中验证 SharePoint Web 服务

以下示例演示了如何检索身份验证 cookie:

private static CookieContainer GetAuthCookies(Uri webUri, string userName, string password)
{
var securePassword = new SecureString();
foreach (var c in password) { securePassword.AppendChar(c); }
var credentials = new SharePointOnlineCredentials(userName, securePassword);
var authCookie = credentials.GetAuthenticationCookie(webUri);
var cookieContainer = new CookieContainer();
cookieContainer.SetCookies(webUri, authCookie);
return cookieContainer;
}

示例

string sourceUrl = "https://contoso.sharepoint.com/Documents/SharePoint User Guide.docx";
string destinationUrl = "https://contoso.sharepoint.com/Documents/SharePoint User Guide 2013.docx";
FieldInformation[] fieldInfos;
CopyResult[] result;
byte[] fileContent;
using(var proxyCopy = new Copy())
{
proxyCopy.Url = webUri + "/_vti_bin/Copy.asmx";
proxyCopy.CookieContainer = GetAuthCookies(webUri, userName, password);

proxyCopy.GetItem(sourceUrl,out fieldInfos,out fileContent);
proxyCopy.CopyIntoItems(sourceUrl,new []{ destinationUrl}, fieldInfos, fileContent, out result);
}

引用资料

关于c# - 使用 office 365/SharePoint 在线验证客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20950628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com