You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#实现SharePoint Online的Send To Connections列表查询方法

需求可行性及实现方案

当然可行!要获取SharePoint Online管理中心里的「Send To Connections」,咱们不需要去爬页面(那样既不稳定也不推荐),直接借助SharePoint的Client Side Object Model(CSOM)或者PnP CSOM就能轻松实现,下面给你具体的实现思路和代码示例:

前提准备

  • 先在项目中安装必要的NuGet包:
    • 如果用原生CSOM:Install-Package Microsoft.SharePointOnline.CSOM
    • 如果用更便捷的PnP CSOM:Install-Package PnP.Framework
  • 确保运行代码的账号拥有SharePoint管理员或全局管理员权限,因为操作的是Admin中心站点

实现代码示例

下面是基于PnP CSOM的实现(认证方式更灵活):

using PnP.Framework;
using System.Collections.Generic;
using System.Linq;

private List<string> GetSendToConnections()
{
    var sendToConnections = new List<string>();
    // 替换成你的租户Admin站点地址
    var adminSiteUrl = "https://MYSERVER-admin.sharepoint.com";
    
    // 这里以账号密码认证为例,你也可以用证书、应用权限等方式
    using (var ctx = new AuthenticationManager().GetSharePointOnlineAuthenticatedContextTenant(adminSiteUrl, "你的管理员账号", "你的密码"))
    {
        try
        {
            // 获取Admin站点的官方文件主机(即Send To Connections)集合
            var officialFileHosts = ctx.Site.GetOfficialFileHosts();
            ctx.Load(officialFileHosts, hosts => hosts.Include(host => host.Name));
            ctx.ExecuteQuery();
            
            // 提取所有连接的显示名称
            sendToConnections.AddRange(officialFileHosts.Select(host => host.Name));
        }
        catch (System.Exception ex)
        {
            // 这里可以根据需求添加异常处理逻辑,比如日志记录
            System.Diagnostics.Debug.WriteLine($"获取Send To Connections失败:{ex.Message}");
        }
    }
    
    return sendToConnections;
}

关键说明

  • 站点地址:必须连接到租户的SharePoint Admin站点(格式就是https://<租户名>-admin.sharepoint.com),普通站点无法访问这些管理级别的资源
  • 认证方式:示例用的是账号密码,如果你是生产环境,更推荐用应用权限或者证书认证,避免硬编码账号密码
  • 权限要求:操作Admin站点需要管理员级别的权限,普通站点权限无法获取这些连接信息

内容的提问来源于stack exchange,提问作者Djair Nascimento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:31:00