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

如何通过.NET Core控制台或Web API使用CSOM在SharePoint Online列表创建项

问题解答

完全可以通过CSOM在.NET Core控制台应用或者Web API中向SharePoint Online列表创建列表项,微软已经推出了原生适配.NET Core/.NET 5+的CSOM版本,可直接使用。

实现前提

  • 你需要拥有对应SharePoint Online站点的写入权限,至少要具备目标列表的「编辑」权限
  • 开发环境安装有.NET Core 3.1及以上版本SDK

具体实现步骤

步骤1:安装适配.NET Core的CSOM NuGet包

打开项目的NuGet包管理器,搜索安装Microsoft.SharePointOnline.CSOM,选择16.0.23311.12000及以上版本即可支持.NET Core。也可以直接在NuGet包管理控制台执行命令:
Install-Package Microsoft.SharePointOnline.CSOM -Version 16.0.23804.12000

步骤2:准备身份验证信息

SharePoint Online默认禁用传统用户名密码验证,推荐使用Azure AD客户端凭证模式完成验证,这是.NET Core场景下最稳定的验证方案:

  • 在Azure AD中注册一个应用,为该应用授予SharePoint API的Sites.ReadWrite.All应用权限(不要选委托权限),并完成管理员同意
  • 记录该应用的客户端ID、客户端密钥,以及目标SharePoint站点的完整URL、目标列表的显示名称

步骤3:编写创建列表项的核心代码

以下代码在.NET Core控制台和Web API中通用:

using Microsoft.SharePoint.Client;
using System;

// 替换为你自己的配置参数
string siteUrl = "https://你的租户名.sharepoint.com/sites/目标站点名";
string clientId = "Azure AD应用的客户端ID";
string clientSecret = "Azure AD应用的客户端密钥";
string targetListName = "目标列表的显示名称";

using (var context = new ClientContext(siteUrl))
{
    // 身份验证
    context.Credentials = new SharePointOnlineCredentials(clientId, clientSecret);
    
    // 获取目标列表
    List targetList = context.Web.Lists.GetByTitle(targetListName);
    
    // 初始化新列表项
    ListItemCreationInformation createInfo = new ListItemCreationInformation();
    ListItem newItem = targetList.AddItem(createInfo);
    
    // 为列表项字段赋值,注意要使用字段的内部名而非显示名
    newItem["Title"] = "测试列表项标题";
    newItem["自定义字段内部名"] = "自定义字段值";
    // 数字字段赋值示例:newItem["Age"] = 28;
    // 日期字段赋值示例:newItem["StartDate"] = DateTime.Now;
    
    // 提交保存
    newItem.Update();
    context.ExecuteQuery();
    
    Console.WriteLine($"列表项创建成功,新项ID为:{newItem.Id}");
}

步骤4:结果验证

运行代码后打开对应SharePoint Online列表,即可看到刚刚创建的列表项。如果执行报错可按以下方向排查:

  • 401错误:检查Azure AD应用权限是否配置正确,是否已经完成管理员同意
  • 404错误:检查站点URL、列表名称是否填写正确
  • 字段赋值错误:检查字段内部名是否正确,值的类型是否和列表字段定义匹配

注意事项

  • 生产环境不要硬编码客户端密钥,建议使用.NET Core配置中心、密钥保管工具等安全方式存储敏感信息
  • 如果是面向多用户的Web API,可选择委托权限模式,获取当前登录用户的AccessToken传给CSOM,实现按用户权限操作

内容的提问来源于stack exchange,提问作者Deep Ponkiya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:57:04