首页
学习
活动
专区
工具
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#】浅谈.NETIL代码

    我们在使用.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.svcUrl地址上(如果是Get方法的话,就没有发送数据),然后返回数据时候...和客户端对象模型相同是,我们通过Url,可以定义所需要返回那些字段值,从而减少客户端和服务器端数据传递大小。...$top=n       //获取Test表前n条数据   n为大于0正整数 根据某字段排序  $orderby 支持多字段排序,字段间以逗号隔开 http://localhost/_vti_bin

    1.9K50

    针对构架师.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是一种严格基于栈语言,方法时会按照参数列表去栈顶进行获取数据,调用完成后如果有返回值也会将返回值放入栈顶

    56530

    云计算架构: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.6K30

    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

    实体类详解

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

    48820

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

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

    97620

    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

    78610

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

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

    1.1K20

    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

    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

    Google 开源技术protobuf

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

    2.3K20
    领券