一组用于共享和管理内容、知识和应用程序的 Microsoft 产品和技术。
是控制台程序?MS Learn sample里是调用 await context.ExecuteQueryAsync();
仅供参考。
我使用C#编写了一段访问sharepoint的代码:
访问sharepoint时,指定Office365账号和密码
这个问题比较着急,希望能2025/9/18回复。谢谢。
具体如下:
using Microsoft.SharePoint.Client;
using System;
using (ClientContext context = new ClientContext(Site)
{
try
{
// 初始化保存账号密码的变量并保存密码
var securePassword = new System.Security.SecureString();
foreach (char c in password)
{
securePassword.AppendChar(c);
}
// 通过API生成访问sharepoint的凭据
context.Credentials = new SharePointOnlineCredentials(userName, securePassword);
Web web = context.Web;
context.Load(web);
context.ExecuteQuery(); -》这里执行时报错。参考程序执行时的错误内容
}
catch (Exception ex)
{
CommonUtils.Log(clazzName + ": checkStandardFileLinkAccessToVisit():Error :" + ex.Message);
Console.WriteLine(ex.Message);
return false;
}
}
程序执行时的错误内容:
Identity Client Runtime Library (IDCRL) could not look up the realm information for a federated sign-in.
希望回复的内容:
一组用于共享和管理内容、知识和应用程序的 Microsoft 产品和技术。
您好 骏 高
感谢您在 Microsoft 问答论坛中提问。
此回复已自动翻译,因此可能存在语法错误或奇怪的表达。
根据我的研究,SharePointOnlineCredentials 支持 Kerberos、Ntlm 和基本身份验证。因此,在基本支持终止后(2025 年 3 月结束),它将无法与 SharePoint Online 兼容。
对于 SharePoint Online,您应该切换到访问令牌。
使用访问令牌,您可以调用 Azure AD 获取令牌。如果您需要用户令牌,则可以使用 Web 浏览器登录 AD 并获取令牌。您还可以使用应用程序客户端 ID 和密钥(称为密码流)以应用程序(而非用户)身份登录,而无需使用浏览器。
使用 CSOM for .NET Standard 替代 CSOM for .NET Framework | Microsoft Learn
请尝试并告诉我它是否对您有用。
如果答案对您有帮助,请点击“接受答案”并点赞。如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收此主题的相关电子邮件通知,请按照我们“文档”中的步骤启用电子邮件通知。