咨询:C#控制台应用通过PNP Core无交互连接本地SharePoint
可行,针对本地SharePoint(SharePoint On-Premises),可以通过Windows身份验证复用当前Windows登录会话的AD凭据,实现无交互运行。以下是具体解决思路和代码示例:
核心方案:使用WindowsAuthenticationProvider
PNP Core专门为本地SharePoint环境提供了WindowsAuthenticationProvider,它会自动获取当前登录用户的域凭据,无需手动输入或弹出验证窗口。
步骤1:安装依赖NuGet包
确保已安装PNP Core及身份验证相关包:
Install-Package PnP.Core Install-Package PnP.Core.Auth
步骤2:编写无交互连接代码
示例代码如下:
using PnP.Core.Services; using PnP.Core.Auth; var siteUrl = "http://你的本地SharePoint站点地址"; // 初始化Windows身份验证提供器 var authProvider = new WindowsAuthenticationProvider(new WindowsAuthenticationOptions { SiteUrl = new Uri(siteUrl) }); // 创建PnP上下文并连接站点 using var context = await PnPContextFactory.CreateAsync(siteUrl, authProvider); // 验证连接:获取站点标题 var webTitle = context.Web.Title; Console.WriteLine($"当前站点标题:{webTitle}");
注意事项
- 运行控制台应用的用户必须拥有目标SharePoint站点的访问权限,且当前会话处于域用户登录状态。
- 该方案仅适用于本地部署的SharePoint,不支持SharePoint Online。
- 若出现权限报错,检查当前用户的AD权限及SharePoint站点的权限分配是否正确。
内容的提问来源于stack exchange,提问作者dusty
相关产品推荐
相关产品推荐

