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

作为SharePoint加载项服务器端运行的C#工作流中的“创建者”返回0,而不是包含ID的int32

在SharePoint加载项服务器端运行的C#工作流中,"创建者"返回0,而不是包含ID的int32。这意味着在工作流中,无法直接获取创建者的ID,而只能获取到一个值为0的整数。

要解决这个问题,可以通过以下步骤来获取创建者的ID:

  1. 使用工作流中的"创建者"属性获取创建者的登录名。
  2. 使用SharePoint的客户端对象模型(CSOM)或服务器对象模型(SSOM)查询用户列表,根据登录名获取用户对象。
  3. 从用户对象中获取用户的ID属性,即可获得创建者的ID。

以下是一个示例代码片段,展示了如何在SharePoint加载项服务器端运行的C#工作流中获取创建者的ID:

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

namespace SharePointWorkflow
{
    public class Workflow
    {
        public void GetCreatorId()
        {
            // 获取当前Web的上下文
            ClientContext context = new ClientContext("https://your-sharepoint-site-url");

            // 获取当前列表
            List list = context.Web.Lists.GetByTitle("Your List Title");

            // 获取当前项
            ListItem item = list.GetItemById(1);

            // 加载创建者字段
            context.Load(item, i => i["Author"]);

            // 执行查询
            context.ExecuteQuery();

            // 获取创建者字段的登录名
            FieldUserValue creator = item["Author"] as FieldUserValue;
            string creatorLoginName = creator.LookupValue;

            // 查询用户列表,获取用户对象
            List userList = context.Web.SiteUserInfoList;
            CamlQuery query = new CamlQuery();
            query.ViewXml = $"<View><Query><Where><Eq><FieldRef Name='Name' /><Value Type='Text'>{creatorLoginName}</Value></Eq></Where></Query></View>";
            ListItemCollection userItems = userList.GetItems(query);
            context.Load(userItems);
            context.ExecuteQuery();

            // 获取用户对象
            ListItem userItem = userItems[0];
            int creatorId = Convert.ToInt32(userItem["ID"]);

            Console.WriteLine("创建者的ID:" + creatorId);
        }
    }
}

这段代码首先获取了当前Web的上下文,然后通过列表和项的ID获取到了创建者字段的登录名。接下来,使用CAML查询语句在用户列表中查询到了对应的用户对象,并从中获取到了创建者的ID。

请注意,以上代码仅为示例,实际使用时需要根据具体情况进行适当修改。

推荐的腾讯云相关产品:由于要求不能提及具体品牌商,无法给出腾讯云相关产品的链接地址。但腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。

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

相关·内容

Windows 商店应用中使用 SharePoint REST API

当需要向列表中插入新项时,我们需要使用列表项集合 API,使用 POST 方法插入数据。而需要修改列表中某一项时,则需要使用指定列表项 API,使用 MERGE 方法来更新数据。       ...而涉及到数据修改时,我们需要把方法类型,如 POST,MERGE 等作为X-HTTP_Method 键的值添加到请求标头中。而且需要将请求窗体摘要值作为 X-RequestDigest 的值传递进去。...的使用方法,这里的 $select 也是确定请求返回的结果中需要包含哪些字段,使用方法是:_api/web/lists/getByTitle('Books')/items?...$top=2,这样我们就会返回这个结果集中的前两项(如不足两项则返回全部数据)。        (5)$skip 参数        这个参数用于在结果集中跳过指定数量的项,而返回剩余的项。...$skip=2,这样我们就会在返回结果中跳过前两项而返回其余的项,如结果不足两项,则返回空结果集。

4.8K150
  • ASP.NET 调味品:AJAX

    遗憾的是,在很多情况下,不将所有响应都返回或加载到 JavaScript 要更好。返回操作会使过多的 UI 断开连接,或在客户端上需要过量的数据,这经常导致生成不易读的 JavaScript。...AJAX 使您能够通过 JavaScript 调用执行服务器端方法,而不需要刷新浏览器。将它视为发生于用户后台的小型请求/响应。...本文包含的示例 C# 和 Visual Basic .NET 项目可供下载,并提供工作代码和运行代码。在学习示例以前,首先需要了解如何安装和使用 Ajax.NET。...其次,在页加载事件期间,必须通过调用 Ajax.Utility.RegisterTypeForAjax 来注册包含这些函数的类。听起来似乎有些复杂,但请不必担心;实际上只需要在代码中多加两行。...返回到 Ajax.NET 的自定义类(例如我们正在返回的 ArrayList 所包含的 ForumPost)必须标有 Serializable 属性。

    3.7K50

    【小白学C#】浅谈.NET中的IL代码

    我们在使用.NET框架中的C#、VB.NET、F#等语言的时候,编译过程并不是像C/C++一样直接编译出原生代码,而是编译成IL中间语言。...下面我们以C#语言为例,大致了解了解一下我们的源代码是如何编译成IL语言,继而运行在电脑上面的。 ? 图1:.NET语言编译过程示意图   上图为C#语言的编译运行过程示意图。...图7:Func2反编译出来的IL代码   可以看到,因为我们的C#代码中使用了ref参数,所以在IL代码中将其翻译成了int32& n的形式,和C++是不是很类似?   ...nop:没有什么意义;   ldarg.0:将索引为 0 的参数加载到计算堆栈上,也就是把参数 n的地址放到堆栈上;   ldind.i4:将 int32 类型的值作为 int32 间接加载到计算堆栈上...Ldelem.Ref 将位于指定数组索引处的包含对象引用的元素作为 O 类型(对象引用)加载到计算堆栈的顶部。

    3K20

    SharePoint—用REST方式访问列表

    : 服务器端对象模型 LINQ to SharePoint Web Service 客户端对象模型 ADO.NET Data Service (REST协议) ADO.NET Data Service...URL中(比如通过:_vti_bin/listdata.svc/Test(3)就可以获取到Test这个列表中ID为3的那个条目的信息,当然也可以通过一些特殊的写法实现简单的查询、排序功能),并可以通过GET...图 01 通过这种方式访问的时候,客户端使用JSON的格式把需要的数据通过某种HTTP方法发送至包含listdata.svc的Url地址上(如果是Get方法的话,就没有发送的数据),然后返回数据的时候...和客户端对象模型相同的是,我们通过Url,可以定义所需要返回的那些字段值,从而减少客户端和服务器端的数据传递大小。...$top=n       //获取Test表中的前n条数据   n为大于0的正整数 根据某字段排序  $orderby 支持多字段排序,字段间以逗号隔开 http://localhost/_vti_bin

    2K50

    针对构架师的.NET 3.0介绍

    它提供了运行时基础、灵活的工作流控制机制、长时间运行和状态化工作流、对用户而言运行时和设计时的透明性,以及用于规则遵从和记录管理过程的审核能力。...Workflow Foundation允许你把一个工作流定义为一系列的活动。活动即是执行的单元,并被允许轻易地进行重用和组合。基本活动是在一个工作流里面的一些步骤,而组合活动可以包含其他活动。...你甚至可以在工作流已经处于运行过程中时添加和删除活动,这将使你在面对改变的时候具有巨大的灵活性。...Windows SharePoint Services作为Windows Server的添加项提供了一个MOSS 2007的功能子集。简言之,WSS提供了简单的文档管理和工作流能力。...一个设计师可以使用Expression产品线和XAML来创建视图,而开发人员可以使用Visual Studio和VB.NET或C#来编写代码。

    1.3K60

    MSIL学习------从HelloWorld开始

    instance  static 声明这个函数时静态函数     instance:声明这个函数时实例函数 cil managed  声明这个函数时CIL代码   了解了IL代码整体结构后接下来来看下方法,方法体中通常包含三项...,所以自己写代码时没必要每行都加,只有在需要时加入即可,另外标号不会对伪指令进行标注   在上面C#代码中只定义了一个Main方法,但是在IL文件中却存在两个方法,其中一个方法就是定义的Main方法,而另一个则是...(IL栈元素不是字节或字,而是槽,当谈论IL栈深度时,指的是放在栈中的项,而不考虑项的大小)     nop  指令代表如果修补操作码,则填充空间,但时是并不执行任何有意义的操作          ldstr...  代表加载一个字符串到栈顶     call   方法调用指令,还有另一个方法调用指令为callvirl,在IL中调用方法使用是“::” 而不是C#中的“.”...,并且调用前要先声明其返回值类型和参数并不是C#的那种实参变量而是参数的类型,因为IL是一种严格基于栈的语言,方法时会按照参数列表去栈顶进行获取数据,调用完成后如果有返回值也会将返回值放入栈顶

    56930

    云计算架构:Azure]比较流,逻辑应用(Logic App),函数和 WebJobs

    它们有相同的工作流设计器和相同的连接器。 借助流,任何办公室工作人员都可以执行简单的集成(例如,对 SharePoint 文档库的审批过程),无需求助开发人员或 IT 部门。...另一方面,逻辑应用可启用需要企业级 DevOps 和安全实践的高级集成(例如 B2B 流程)。 对于业务工作流,其典型特征就是复杂性会随时间增长而增加。...比较函数和 WebJobs 与 Azure Functions 一样,包含 WebJobs SDK 的 Azure 应用服务是一项代码优先的集成服务,专为开发人员设计。...这不是完整的列表;WebJob 可以运行任何程序或脚本,只要该程序或脚本可以在应用服务沙盒中运行。 2 WebJobs(不带 WebJobs SDK)支持 NPM 和 NuGet。...对于其他需要运行代码片段来集成 Azure 或第三方服务的情况,请选择 Azure Functions 而不是带 WebJobs SDK 的 WebJobs。

    1.7K30

    CVE-2019-0604分析及武器化

    查看方法可以使用下面的C#代码进行输出: System.Console.WriteLine(typeof(Microsoft.SharePoint.WebControls.ItemPickerDialog...,+Culture=neutral,+PublicKeyToken=71e9bce111e9429c 注意,并不是所有情况下都会像刚刚我网页中那样爆出来相关信息,大多数时候还是需要手工查看这些信息的。...加上正确的参数再进行访问,即可看到正确的页面。 ? 该页面为webform页面,通过查看源代码即可查看到漏洞的加载点: ?...而sharepoint一般使用ntlm认证,默认的burp的方法是无法成功重放数据包的,此时我们可以参考该文章来进行设置:https://blog.csdn.net/hackerie/article/details...本地复现如果图方便的话,也可以自行将sharepoint的认证改成基础认证。然后就是抓包了,并把刚刚所说的字段改成自己的payload ? 目标机器成功运行calc ?

    1.7K20

    实体类详解

    " /> Int32" Description="创建者" /> <Column Name="CreateTime...其中Biz常称之为业务类,多次build.tt生成不覆盖; 另一个称之为数据类,每次build.tt生成均覆盖; 这里采用了C#的分部类(partial)技术,一个类由两个或多个类文件组成。...数据类包含表名(类名)字段名(属性)等信息,修改模型文件后,每次生成都会覆盖文件。 业务类包含其它非表结构信息,供开发者填写代码,所以只有首次生成,而再次生成时不会覆盖。 ?...然后在实体基类EntityBase的静态构造函数中写入这个模块所共有的代码。 初始化数据 有些数据表需要默认初始化一些数据,如类别表、配置表等,便于开发测试。...一般我们把查询返回单个对象的方法命名为 FindByAbc,而把返回多个实体的方法命名为 FindAllByAbc。

    1.3K30

    .NET 8 Preview 6发布,支持新的了Blazor呈现方案 和 VS Code .NET MAUI 扩展

    .NET 8 Preview 6增强了Blazor的新呈现方案,Blazor是 ASP.NET Core Web开发组件,允许主要使用C#而不是JavaScript。...这些呈现方案包括 Blazor Server 中组件的服务器端呈现,以及客户端对应项 Blazor WebAssembly 的交互式呈现。....NET 8 Preview 6 里 Blazor 相关的多个工作项,包括: Blazor 的新服务器端呈现模式现在可以对绑定进行建模并验证 HTTP 表单发布值。...NET MAUI 和 C# Dev Kit 借用了 Visual Studio 中的一些熟悉的功能来提高您的工作效率,使得在 VS Code 中使用 C# 开发移动和桌面应用变得愉快。...对于组织,C# Dev Kit及其扩展系列包含在Visual Studio Professional和Enterprise订阅以及GitHub Code spaces中,这些许可条款受到一些开发人员的抨击

    50520

    xresloader转表工具链增加了一些新功能(map,oneof支持,输出矩阵,基于模板引擎的加载代码生成等)

    xresloader 是一组用于把Excel数据结构化并导出为程序可读的数据文件的导表工具集。它包含了一系列跨平台的工具、协议描述和数据读取代码。...| 会作为 plain_msg 的字段分隔符, , 会作为 plain_msg.param 的数组分隔符。...,由于map中的key的数据可能会不符合 xml 的tag的规则,所以我们对于map输出的数据中 tagName 采用类型名, 即 string , int32 , int64 。...基于模板引擎的加载代码生成 目前我们项目组开发了工具来自动生成加载代码,包括 C++ 、 lua 和 C# 版本。...,也支持生成C#代码,生成的代码就不贴了,加载代码如下: using System; using excel; class Program { static void Main(string[]

    98320

    C# 发展历史及版本新功能介绍

    . // array[0] = 10; C# 一开始是非常通用的面向对象的 (OO) 语言,而 C# 2.0 版很快改变了这一点。 做好基础准备后,他们开始追求解决一些严重影响开发者的难点。...通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。...命名参数/可选参数 C# 4 介绍命名实参和可选实参。 通过命名实参,你可以为特定形参指定实参,方法是将实参与该形参的名称关联,而不是与形参在形参列表中的位置关联。...使用命名参数和可选参数时,将按实参出现在实参列表(而不是形参列表)中的顺序计算这些实参。 命名形参和可选形参一起使用时,你可以只为可选形参列表中的少数形参提供实参。...C# 在 2012 年推出这些功能时,将异步引入语言作为最重要的组成部分,另现状大为改观。 如果你以前处理过冗长的运行操作以及实现回调的 Web,应该会爱上这项语言功能。

    4.2K20

    《CLR via C#》笔记:第3部分 基本类型(2)

    这意味着数组始终是引用类型,是在托管堆上分配的。在应用程序的变量或字段中,包含的是对数组的引用,而不是包含数组本身的元素。...(P329 1) (不明白C#为什么不像C++那些创建数组的看这里)第一行代码声明myIntegers变量,它能指向包含Int32值的一维数组。...第二行代码分配了含有100个Int32值的数组,所有Int32都被初始化为0。由于数组是引用类型,所以会在托管堆上分配容纳100个未装箱Int32所需的内存块。...实际上,除了数组元素,数组对象占据的内存块还包含一个类型对象指针、一个同步块索引和一些额外的成员。该数组的内存块地址被返回并保存到myIntegers变量中。...Length; x++) console.writeLine (myPolygons [0][x]) 初始化数组元素 打括号中的以逗号分隔的数据项称为数组初始化器(array initializer

    80410

    Python和Go语言哪个更适合你?

    Python 和 Go 不同,通常用于不同的目的。 Python 是数据科学家的主要语言,其中 Go 是服务器端命令的语言。 Go 是用于运行软件的语言。...从技术上讲,Go 是一种为速度而构建的过程式函数式语言,而 Python 是一种面向对象、命令式、函数式和过程式语言。 Go 支持并发,即算法能够无序运行其步骤,而 Python 不支持。...print(even_numbers) 复制代码 返回: [0, 2, 4, 6, 8] 复制代码 2、错误处理 大多数 IDE 将帮助在编写 Python 代码时发现错误。...Go 的本意是速度快,但这并不是 Python 的唯一目标。在大多数基准测试中,Go 远远超过 Python。Go 甚至超过了 Java 的速度,人们普遍认为 Java 比 Python 快得多。...你必须编写自己的所有脚本来搜索数据表。在 Go 中开发机器学习将是一项巨大的努力。

    1.9K30

    Google 开源技术protobuf

    protobuf在google中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息在google这样的大规模应用中是至关重要的。...关于message,类似于C语言中的结构包含另外一个结构作为数据成员一样。 关于 fixed32 和int32的区别。fixed32的打包效率比int32的效率高,但是使用的空间一般比int32多。...protobuf建议字段的命名采用以下划线分割的驼峰式。例如 first_name 而不是firstName. ④.字段编码值 有了该值,通信双方才能互相识别对方的字段。...关于message 支持嵌套消息,消息可以包含另一个消息作为其字段。也可以在消息内定义一个新的消息。 关于enum 枚举的定义和C++相同,但是有一些限制。 枚举值必须大于等于0的整数。...使用分号(;)分隔枚举变量而不是C++语言中的逗号(,) eg.

    2.3K20

    全面的ASP.NET Core Blazor简介和快速入门

    Blazor 应用程序可以直接在浏览器中运行,也可以作为服务端应用程序在服务器端运行,并通过 SignalR 实时通信。...Blazor应用程序及其依赖项和.NET运行时被下载到浏览器中。该应用程序直接在浏览器的UI线程上执行。UI更新和事件处理在同一进程中进行。...Blazor WebAssembly 托管模型具有以下优点: 从服务器下载应用后,没有 .NET 服务器端依赖项,因此,如果服务器脱机,应用将保持正常运行。 可充分利用客户端资源和功能。...需要可用的客户端硬件和软件(例如 WebAssembly 支持)。 下载项大小较大,应用加载耗时较长。...在 Razor 中,可使用相同的机制来创建包含附加内容的 HTML 帮助程序。

    1.3K20

    tfs安装教程_怎么安装2010office激活成功教程版

    安装SharePoint 3.0 。   1.5. 安装TFS   TFS2010的安装采用很简单的自动向导,基本上默认的配置就可以安装完成,期间注意sharepoint与报表服务的关联配置。   ...工作项管理   TFS中的工作项一旦创建了,则不可删除。其主要考虑应该是微软觉得既然有计划要新增工作项就一定是存在的,可以提供修改,但不再UI页面提供删除的方法。...IDNum:要删除的ID序号。   3. 模板定制   3.1. 方法   TFS支持工作项、过程模板的自定义。...Layout是定义创建工作项弹出的对话框的字段布局。   Workflow是定义工作项状态变化和操作的工作流。   3.2.1....工作流修改   模板还允许定制工作流,可以通过VS的设计器与工具箱的控件进行修改。   3.3.

    4.3K30
    领券