我已经创建了一个连接到SharePoint在线站点的C#应用程序。调用SharePointOnlineCredentials.GetAuthenticationCookie(siteURI)方法时,有时可以成功获取cookie,但有时返回的结果为null。为什么会这样?
string siteUrl = "https://mySite.sharepoint.com/sites/TestSite";
var clientContext = new ClientContext(siteUrl);
var pswd = new SecureString();
const string mypwd = "P@ssword";
foreach (var c in mypwd.ToCharArray())
{
pswd.AppendChar(c);
}
SharePointOnlineCredentials spCred = new SharePointOnlineCredentials("username", pswd);
clientContext.Credentials = spCred;
var cookie = spCred.GetAuthenticationCookie(new Uri(siteUrl));
Web web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
答案 0 :(得分:0)
在我看来,您正在使用的用户无法访问该网站。可能是用户权限问题。
我已经测试过GetAuthenticationCookie方法,当用户对该网站没有访问权限时,它会返回null。
答案 1 :(得分:0)
如果用户拥有所有权限。这可能是因为不推荐使用的安全协议。尝试将安全协议指定为 TLS 1.2 版本。 您可以使用以下代码::
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls |
SecurityProtocolType.Ssl3;