首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微软图形应用编程接口C# -如何在Sharepoint中更新"CreatedBy“或"ModifiedBy”?

在SharePoint中更新"CreatedBy"或"ModifiedBy"字段,可以使用微软图形应用编程接口(Graph API)和C#语言来实现。

首先,你需要使用Microsoft Graph API来访问和更新SharePoint中的数据。Graph API是一个全球性的微软云服务,用于访问和管理Office 365中的各种资源,包括SharePoint。

在C#中,你可以使用Microsoft Graph SDK来与Graph API进行交互。首先,你需要在你的项目中添加对Microsoft Graph SDK的引用。你可以在NuGet包管理器中搜索"Microsoft.Graph"并安装相应的包。

接下来,你需要通过OAuth2授权流程获取访问SharePoint的权限。你可以使用MSAL(Microsoft Authentication Library)来实现身份验证。以下是一个示例代码片段,展示了如何获取访问令牌(access token):

代码语言:txt
复制
using Microsoft.Identity.Client;

public static async Task<string> GetAccessTokenAsync()
{
    string clientId = "YOUR_CLIENT_ID";
    string clientSecret = "YOUR_CLIENT_SECRET";
    string tenantId = "YOUR_TENANT_ID";
    
    IConfidentialClientApplication app = ConfidentialClientApplicationBuilder
        .Create(clientId)
        .WithClientSecret(clientSecret)
        .WithAuthority($"https://login.microsoftonline.com/{tenantId}")
        .Build();

    string[] scopes = new string[] { "https://graph.microsoft.com/.default" };
    AuthenticationResult result = await app.AcquireTokenForClient(scopes)
        .ExecuteAsync();

    return result.AccessToken;
}

请确保替换示例代码中的"YOUR_CLIENT_ID"、"YOUR_CLIENT_SECRET"和"YOUR_TENANT_ID"为你自己的应用程序标识符、客户端密钥和租户标识符。

一旦你获取到了访问令牌,你可以使用Graph API来更新"CreatedBy"或"ModifiedBy"字段。以下是一个示例代码片段,展示了如何更新这些字段:

代码语言:txt
复制
using Microsoft.Graph;

public static async Task UpdateMetadataAsync()
{
    string siteId = "YOUR_SITE_ID";
    string itemId = "YOUR_ITEM_ID";

    string accessToken = await GetAccessTokenAsync();

    GraphServiceClient graphClient = new GraphServiceClient(
        new DelegateAuthenticationProvider(requestMessage =>
        {
            requestMessage.Headers.Authorization =
                new AuthenticationHeaderValue("Bearer", accessToken);
            return Task.CompletedTask;
        })
    );

    var siteDriveItem = await graphClient
        .Sites[siteId]
        .Drive
        .Items[itemId]
        .Request()
        .GetAsync();

    var createdByUserId = siteDriveItem.CreatedBy.User.Id;
    var modifiedByUserId = siteDriveItem.ModifiedBy.User.Id;

    // 更新"CreatedBy"字段
    var createdByUser = new User
    {
        Id = createdByUserId
    };

    var updateCreatedBy = new DriveItem
    {
        CreatedBy = createdByUser
    };

    await graphClient
        .Sites[siteId]
        .Drive
        .Items[itemId]
        .Request()
        .UpdateAsync(updateCreatedBy);

    // 更新"ModifiedBy"字段
    var modifiedByUser = new User
    {
        Id = modifiedByUserId
    };

    var updateModifiedBy = new DriveItem
    {
        ModifiedBy = modifiedByUser
    };

    await graphClient
        .Sites[siteId]
        .Drive
        .Items[itemId]
        .Request()
        .UpdateAsync(updateModifiedBy);
}

请确保替换示例代码中的"YOUR_SITE_ID"和"YOUR_ITEM_ID"为你要更新的站点和项的标识符。

在这个示例代码中,我们首先通过Graph API获取了指定站点和项的创建者和修改者的用户标识符。然后,我们分别创建了包含这些用户标识符的User对象,并将其分别赋给对应的字段。最后,我们通过Graph API将更新后的字段值更新到SharePoint中。

这只是一个示例,你可以根据自己的需求进行调整和扩展。如果你需要了解更多关于Microsoft Graph API的信息,你可以访问腾讯云的Microsoft Graph API文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Atlas元数据存储模型分析

要在Atlas中存储新类型的元数据,需要了解类型系统组件的概念。 Atlas中的 "类型" 定义了如何存储和访问特定类型的元数据对象。类型表示了所定义元数据对象的一个或多个属性集合。...具有开发背景的用户可以将 "类型" 理解成面向对象的编程语言的 "类" 定义的或关系数据库的 "表模式"。...下图给出了当前元数据项目里的部分元数据类型继承关系: 图中不难看出,一个元数据类型包含一个属性集合,这些属性可以是原生类型如string等,也可以是其他的复合类型如struct或其他元数据类型,如tencent_appgroup...__modifiedBy=更新者的用户名__modificationTimestamp=修改时间__version__type.options#会为每一个attribute生成下一行属性__type....${attrName}每个objectId类型的Attribute,需要创建或更新对应的另一端顶点,然后更新两个顶点的边属性等信息对于每个Map类型的Attribute,若Map的valueType是primitive

4.3K30

.NET周刊【10月第3期 2024-10-20】

文章详细展示了如何在.NET环境中创建和测试GraphQL服务,包括查询、多种操作如增删改、以及利用订阅实现数据推送。...利用反射获取PopupSecurityHelper的句柄后,可以调用封装类来设置窗口材质如亚克力或Mica,遵循微软设计规范。文章附有Demo和代码示例,类库持续更新。...解释AOP切面编程的重要性及其在.NET8中的运用,使用Autofac和Castle.DynamicProxy实现接口拦截,降低耦合性并提高代码灵活性。...在C#中,使用代码连接K8s集群,例如列出Pod。可使用API创建、更新或删除资源,监控集群变化,或进行部署扩展。认证可通过本地kubeconfig文件或集群内配置进行。...文章详细介绍了如何在Azure中部署模型,并在C#环境中使用Semantic Kernel构建问答应用。微软宣布将于2024年10月21日终止个人用户的Azure OpenAI服务。

7610
  • .NET周刊【8月第2期 2024-08-11】

    文章还提供了如何在各种环境中使用该库的示例代码,并讨论了图像生成扩展方案及如何在控制台应用中快速实现二维码生成。最后,提供了项目源码及开源地址。...通过NuGet安装,并在Startup或Program类中配置。配置完成后,可通过默认管理界面管理用户、角色和权限。支持自定义和扩展,适应不同项目需求。...文章引用了微软官方文档和Stephen Toub的解释,强调GetHashCode()不应用于持久化哈希值。...SemanticKernel/C#:实现接口,接入本地嵌入模型 https://www.cnblogs.com/mingupupu/p/18344517 本文介绍了如何在Codeblaze.SemanticKernel...文章、幻灯片等 [C# 12、.NET 8] 如何在 C# 异步处理中有效使用取消令牌 https://zenn.dev/nossa/articles/df258b3ddc351f 关于如何在异步处理中使用

    7710

    .NET周刊【1月第1期 2025-01-05】

    示例代码展示了文档创建及图形绘制过程,提供了简单易用的接口,非常适合快速集成到项目中。...整个内容简洁明了,涵盖了线程安全设计的核心概念,对开发者学习和应用.NET中并发编程具有指导意义。...示例代码清晰展示了如何在 .NET 9 中设置 OpenAPI,便于开发者理解和应用。...ImageSharp提供了丰富的图像处理功能,如调整大小、应用滤镜、裁剪、旋转和绘制文字等,能够支持广泛的应用场景。使用中,仅需几行代码即可轻松实现常见操作,且在性能和内存管理上表现优异。...文章详细说明了如何使用IdentityUserManager将扩展属性写入或更新数据库,并提出了JSON格式扩展字段在加索引过程中的限制问题。此外,文中提供了映射到数据库字段列的必要代码。

    1300

    .NET周刊【1月第1期 2025-01-05】

    示例代码展示了文档创建及图形绘制过程,提供了简单易用的接口,非常适合快速集成到项目中。...整个内容简洁明了,涵盖了线程安全设计的核心概念,对开发者学习和应用.NET中并发编程具有指导意义。...示例代码清晰展示了如何在 .NET 9 中设置 OpenAPI,便于开发者理解和应用。...ImageSharp提供了丰富的图像处理功能,如调整大小、应用滤镜、裁剪、旋转和绘制文字等,能够支持广泛的应用场景。使用中,仅需几行代码即可轻松实现常见操作,且在性能和内存管理上表现优异。...文章详细说明了如何使用IdentityUserManager将扩展属性写入或更新数据库,并提出了JSON格式扩展字段在加索引过程中的限制问题。此外,文中提供了映射到数据库字段列的必要代码。

    6910

    .NET周刊【10月第3期 2024-10-20】

    文章详细展示了如何在.NET环境中创建和测试GraphQL服务,包括查询、多种操作如增删改、以及利用订阅实现数据推送。...利用反射获取PopupSecurityHelper的句柄后,可以调用封装类来设置窗口材质如亚克力或Mica,遵循微软设计规范。文章附有Demo和代码示例,类库持续更新。...解释AOP切面编程的重要性及其在.NET8中的运用,使用Autofac和Castle.DynamicProxy实现接口拦截,降低耦合性并提高代码灵活性。...在C#中,使用代码连接K8s集群,例如列出Pod。可使用API创建、更新或删除资源,监控集群变化,或进行部署扩展。认证可通过本地kubeconfig文件或集群内配置进行。...文章详细介绍了如何在Azure中部署模型,并在C#环境中使用Semantic Kernel构建问答应用。微软宣布将于2024年10月21日终止个人用户的Azure OpenAI服务。

    6510

    Succinctly 中文系列教程(二) 20220109 更新

    一、你好,Objective-C 二、数据类型 三、属性 四、内存管理 五、方法 六、类别和扩展 七、协议 八、异常和错误 九、块 十、总结 Succinctly C# 面向对象编程教程 零、OOP...简介 一、OOP 的三大支柱 二、接口 三、SOLID 四、设计模式 五、一般责任分配软件模式或原则(GRASP) 六、架构 七、其它范式 八、总结 Succinctly OWIN 教程 一、OWIN...三、与其他网络框架一起使用 Katana 四、构建定制中间件 五、Katana 和认证 六、附录 Succinctly PDF 教程 零、简介 一、概念概述 二、创建 PDF 三、文本操作符 四、图形操作符...Office 互操作 Succinctly Prism4 教程 零、简介 一、什么是微软 Prism 4?...2013 教程 一、SharePoint 2013 开发模式简介 二、准备开发环境 三、新应用模型架构概述 四、SharePoint 托管应用 五、提供者托管的应用 六、安全模型概述 七、客户端对象模型

    6K20

    .NET周刊【6月第1期 2024-06-02】

    LUAgent侧重服务器端,能生成和上传升级更新文件,目前已开源。软件包括多个组成部分如主窗体、上传窗体和FTP操作类,支持添加应用名称、版本号、生成更新文件和上传至FTP。源码可在CSDN下载。...的function calling如何在Semantic Kernel中应用。...C#中接口的显式实现与隐式实现及其相关应用案例 https://www.cnblogs.com/TonyCode/p/18223431 C#中接口显式实现限制类直接调用方法,像“密封”类接口方法,增加调用成本.../lulight/p/18225557 本文讲述在.NET 8环境下,应用如何在Linux系统或容器中读取SSL证书(X509),主要有两种方式。...文中还详细解释了PKCE的概念和作用,以及oidc-client.js停止维护带来的困扰和潜在解决方案,如关闭PKCE认证或直接取Localstorage中的code_verifier值。

    17610

    Windows桌面程序开发

    没有哪一种方案能够独霸 Windows,使用比较多的编程语言是 C++、C#、Java。...WPF和Winform最大的区别在于WPF底层使用的DirectX,Winform底层使用的是GDI+,所以WPF的图形界面上更胜一筹 GDI+(Graphics Device Interface)图形设备接口...,它的主要任务是负责绘图程序之间的信息交换、处理,所有windows程序的图形输出 DirectX(Direct Extension)多媒体编程接口,加强3D图形和声音效果,有很多API组成。...这将使得开发者能够更灵活地将 UWP 中一些更现代化的接口引入到 WPF 和 Windows Forms 中。...在容器化大行其道的今天,.NET Core 的模块化、轻量级以及它的灵活性使得它能很容易地部署到容器中,容器可以部署到任何平台,如 云上、Linux 和 Windows 上。

    10.9K10

    针对构架师的.NET 3.0介绍

    WCF可以和现有的投资互操作,并结合和扩展现存的微软分布式系统技术,如:Enterprise Services、System.Messaging、Microsoft .NET Remoting、ASMX...WCF已经为你提供了一个首要的核心编程框架,以应付逐步增长的面向服务的开发。...WPF利用XAML让你无需成为图形设计师就能尽情地开发下一代界面。 我建议你去看一个WPF应用程序的演示,来理解我指的下一代用户界面是什么意思。...这个阅读器是一个基于WPF的应用程序,运行在Internet Explorer浏览器中,就是指所谓的XBAP(可扩展浏览器应用程序)——这是一个用于代替浏览器中的ActiveX功能的技术。...一个设计师可以使用Expression产品线和XAML来创建视图,而开发人员可以使用Visual Studio和VB.NET或C#来编写代码。

    1.3K60

    Windows 商店应用中使用 SharePoint REST API

    开发人员可以使用任何支持 REST Web 请求的技术(C#,javascript,java,oc 等等)以远程方式与 SharePoint 数据进行交互。...这也就意味着,开发人员可以使用 REST Web技术和标准开放数据协议(OData)语法从其 SharePoint 相关应用程序、解决方案和客户端应用程序执行 CRUD 操作。...而针对远程 Web 或移动应用,必须先获得访问权限,才能使用 SharePoint 数据资源。      ...而文档内容的上传过程是:文件读取为 Stream,放入 POST 内容中。文件还有其他很多中操作方式,如更新,签出,签入,删除等。      ...这样我们就把 SharePoint REST API 的构成和基本的使用方法介绍完了,希望对大家在 Windows 商店应用中使用 SharePoint REST API 有所帮助,谢谢。

    4.8K150

    12种最受欢迎​​的编程语言

    它还用于基于图形用户界面(GUI)的应用程序,Web浏览器,高级计算和图形,编译器,数据库软件,操作系统,企业软件解决方案和应用程序(如高端CAD,CAM系统)。...C# 由微软设计和开发的C#(发音为C-sharp)是一种面向对象的编程语言。由.NET Framework支持的Microsoft应用程序需要通过C#实现。...在1亿个网站中,超过16%的网站由ASP.NET框架提供支持,这也是为什么你需要学习C#的原因。考虑两个因素。首先,C#是由微软开发的在他们的平台上开发应用程序的。...因此,微软将确保C#在未来的时间内使用并更新。其次,C#通常是作为Unity Game引擎制作游戏时推荐的语言。...随着编程从DOS向基于Windows的编程转变,微软开发,部署和使用应用程序的方式将会压倒一切,而Visual Basic.NET将为构建这些解决方案奠定基础。

    2.1K70

    .NET周刊【9月第3期 2024-09-15】

    说明如何在VS Code中创建.NET 9应用,并提供了CountBy、AggregateBy和Index方法的示例代码。相关文章链接附于文末。...安装很简单,可以通过官网下载或GitHub下载,安装后可以设置环境变量来调整设置。常用命令包括列出、查看、下载和运行模型,以及通过HTTP接口调用服务。需要注意的是较大模型运行需要较高内存或显存。...微软在.NET 9中重点发展Native AOT,支持老旧系统如Windows 7和XP,并计划在未来扩展到更多平台。这提高了.NET应用的执行效率和兼容性,对开发者是重要的技术升级。...同时,介绍了云原生架构的四个设计原则及其在项目中的应用。技术部分涵盖了多种编程语言及工具,细致描述了系统架构与功能。最后,建议论文写作中要注重字数扩展与个人见解表达。...微软希望此调整能让更多开发者升级应用至最新 .NET 和 C#,而不必全面迁移至 Windows App SDK。

    10110

    .NET周刊【6月第2期 2024-06-09】

    介绍了字符Char及其在C#中的表现形式,说明了Unicode字符集及其各种平面的特点。解释了常见字符编码方案如UTF-8和UTF-16的区别。...系统架构包括版本检查、下载更新、解压缩与安装以及重启应用。文章详细介绍了在WinForms应用中创建自动更新程序的步骤,包括解析命令行参数、关闭当前运行程序、下载更新包、解压更新包和重启新版本程序。...C#异步编程是怎么回事(番外) https://www.cnblogs.com/ggtc/p/18229724 本文通过示例演示多线程与异步编程。...作者选择了国产大模型通义千问作为基础,通过阿里云平台获取接口。游戏设计包括随机发牌、确定地主、轮流出牌等。主要技术点在于C#编程实现的出牌合法性检测,包括手牌检测、牌型判断和竞赛逻辑。...通过OpenJson属性,可以自定义实体类在JSON中的映射方式,支持多层嵌套和集合。文章提供了实际代码示例,并指出该功能可用于webapi接口快速测试和其他应用场景。

    12010

    微软深夜再掀AI生产力革命,奥特曼登台「自曝」新模型!定制Copilot十亿打工人狂欢

    如今,Windows成为了构建AI应用的最佳平台。而这种影响,不啻于Win 32对图形用户界面的意义。...比如在下面这个demo中,用西班牙语描述需求,Copilot就可以自动编写出代码,并为Azure上的部署提供建议。 GitHub产品副总裁表示:「使用自然语言编程将继续降低软件开发的门槛。...为了减少工作中搜索和筛选内容的时间,微软开发了从SharePoint创建Copilot的功能。...举个例子,你想弄清如何在《我的世界》中制作一把剑,却毫无头绪。 Copilot会从头教你:为了造一把剑,你需要先收集材料。按E键,就能打开自己的材料库了。...通过将Copilot集成到XBox中,可以大幅提升游戏体验。 此外,微软还与Quest联手,将Copilot带进VR世界,并为Quest带来可扩展到3D空间的Windows应用程序。

    11910

    Microsoft Forms未授权获取他人邮箱信息的漏洞分析

    本文讲述了关于微软在线调查创建应用Microsoft forms的一个漏洞,通过其中的数据分享机制,作者可以藉机获取到参与调查用户的邮箱信息,漏洞最终收获了$2k的奖励。...OData的数据交互模型如下: 简单来说,OData元数据是系统(如关系数据库中的information_schema)的数据模型之一,对每一个元数据来说都具备相关的实体(类似于数据库中的表)和属性(类似于数据库中的列...当然除了select外,还可以使用其它的查询语法,如JSON或XML格式的数据导出format等。...这里,我可以请求微软官方的metadata接口来看看: http://forms.office.com/formapi/api/$metadata 在上述微软的XML元数据结构中,并没有多少有意义的线索...也即服务端不允许我访问createdBy属性或是其他用户的表单邮箱信息。但我又想到了另外一种方法:”是否有另一个实体有createdBy属性?

    1.8K20
    领券