如何使用C#认证SharePoint Online?解决‘身份未认证’错误
错误说明
连接SharePoint Online时出现提示:The identity has not been authenticated.(身份未通过验证)
排查与修复方案
针对你提供的代码,从以下几个方面逐一排查:
1. 确认账号权限与信息正确性
- 确保登录账号
loginname@yoursite.onmicrosoft.com是有效的SharePoint Online授权账号,且拥有目标站点的访问权限 - 密码
yourpassword需完全正确,注意大小写、特殊字符;如果账号开启了多重身份验证(MFA),SharePointOnlineCredentials方式无法直接验证,需改用其他认证方案
2. 优化SecureString构建逻辑
原代码的SecureString构建可以补充只读标记,避免后续意外修改,修正后代码:
var passWord = new SecureString(); foreach (char c in "yourpassword") { passWord.AppendChar(c); } passWord.MakeReadOnly(); // 标记为只读,提升安全性与稳定性
3. 校验站点URL准确性
确保站点URLhttps://yoursite.sharepoint.com/完全正确:如果是子站点,需写成https://yoursite.sharepoint.com/sites/xxx格式;URL结尾的斜杠不影响,但需保证站点真实存在且账号有权访问
4. 处理多重身份验证(MFA)场景
若账号开启了MFA,SharePointOnlineCredentials不再适用,可改用PnP Core SDK实现认证,示例代码:
using PnP.Core.Services; using PnP.Core.Auth; var authManager = new OAuthAuthenticationProvider( "你的客户端ID", "你的租户ID", "客户端密钥"); // 也可使用交互式弹窗认证 using (var context = await PnPContextFactory.CreateAsync("https://yoursite.sharepoint.com/", authManager)) { var web = await context.Web.GetAsync(); Console.WriteLine(web.Title); Console.ReadLine(); }
注:使用该方案需先安装NuGet包PnP.Core和PnP.Core.Auth
5. 检查CSOM包版本
确保引用的Microsoft.SharePointOnline.CSOM是最新稳定版本,旧版本可能存在认证兼容性问题
非MFA场景下的完整修正代码
using Microsoft.SharePoint.Client; using System; using System.Security; class Program { static void Main() { string siteUrl = "https://yoursite.sharepoint.com/"; string username = "loginname@yoursite.onmicrosoft.com"; string password = "yourpassword"; var securePassword = new SecureString(); foreach (char c in password) { securePassword.AppendChar(c); } securePassword.MakeReadOnly(); using (ClientContext clientContext = new ClientContext(siteUrl)) { clientContext.Credentials = new SharePointOnlineCredentials(username, securePassword); Web web = clientContext.Web; clientContext.Load(web); try { clientContext.ExecuteQuery(); Console.WriteLine(web.Title); } catch (Exception ex) { Console.WriteLine($"认证失败:{ex.Message}"); } Console.ReadLine(); } } }
内容的提问来源于stack exchange,提问作者IsabellaDec2018
相关产品推荐
相关产品推荐

