繁体   English   中英

获取ID? 像SharePoint这样的当前用户可以吗?

[英]Get the ID? of the current user like SharePoint can?

我在一个客户站点上,那里有一个始于SharePoint的应用程序,并且正在慢慢迁移到一个非常自定义的ASP.NET应用程序。 他们的某些数据元素仍托管在SharePoint列表中,其中两个当前有问题的是一些“注释”和“任务”(它们在SharePoint设置中非常简单的数据元素,对此没有特殊要求)。 我需要在ASP.NET中执行的操作之一是自动为这些列表创建一些新项,然后从代码中添加它们。

到目前为止,这很容易。 我找到了一个现有的Web部件,用于处理这些项目的编辑,将调试器附加到该Web部件,跟踪它如何获取其值以及它添加到列表中的内容,等等。但是,添加到列表项目中的字段之一是“相当明显。 在现有的Web部件UI中,该字段如下所示:

分配给字段

本质上,这是一个用于从当前Windows域输入用户的字段。 书籍图标会打开一个弹出窗口,允许用户搜索名称等。在我当前的测试中,我正在开发计算机上以本地管理员身份运行。 因此,我只是在弹出窗口中查找“ admin”,然后按预期的那样用“ [计算机名称] \\ Administrator”填充了该字段。 然后,在调试中,从字段中提取并输入到SharePoint列表项中的值是“ 1”,而不是名称或类似名称。

我假设“ 1”是本地管理员帐户的标识符。 毕竟是有道理的。 但是我的问题是,如何在代码中获取当前登录用户的标识符? 我找到了获取当前用户名的代码,但没有任何类型的数字(即使是字符串)ID。

此外,这不仅会在ASP.NET应用程序上下文中发生。 还有一个用于笔记本电脑的WPF客户端应用程序,它将生成这些列表项,并在连接时将它们同步回服务器。 我目前正在假设客户端用户将使用服务器已知的正确域帐户登录。

我想这很容易,只是我还没有偶然发现我所需要的东西。

我想您正在寻找这个:

int userId = SPContext.Current.Web.CurrentUser.ID;

顺便说一句,这是SharePoint分配给用户的内部ID。 若要从WPF应用程序获取此ID,可以在SharePoint中部署WebService并返回此ID。 或者甚至可以查询SharePoint数据库,但是我不确定它是否安全:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM