c# - 如何在 Sharepoint 站点工作流程 2010 中获取当前用户?

标签 c# sharepoint-2010 workflow

我正在尝试在创建项目时在 Sharepoint 站点工作流程 2010 中查找当前登录的用户。基于用户,我想检索当前用户的项目经理。每次尝试检索当前用户名时,它都会提供系统帐户

我什至尝试以不同的用户身份登录,但仍显示当前用户的系统帐户

我尝试了以下选项:

SPUser user = workflowProperties.OriginatorUser;

SPUser user = SPContext.Current.Web.CurrentUser;


SPWeb web = SPContext.Current.Web;
SPUser user = web.CurrentUser;

 SPContext.Current.Web.CurrentUser.LoginName;

但一切都失败了。确定我做错了什么。我不知道正确的程序。一些程序给我 null 或 Object reference not set to an instance of the object or System Account details.我什至尝试过使用提升的权限并给了我空值。

SPSecurity.CodeToRunElevated elevatedSubmit = new SPSecurity.CodeToRunElevated(delegate
        {
            //SPUser user = SPContext.Current.Web.CurrentUser;
            //string strAssignedTo = user.Name;

            string sspURL = "http://localhost/PWA/default.aspx";
            SPSite site = new SPSite(sspURL);
            SPWeb web = site.OpenWeb();
            SPUser theUser = web.CurrentUser;
            string strUserName = theUser.Name;
        });

        SPSecurity.RunWithElevatedPrivileges(elevatedSubmit);

在尝试通过工作流检索当前用户之前,我是否应该将用户明确添加为 SPUser 或任何其他更改?

最佳答案

SharePoint 2010 Get Current Username / Logged in User

同时检查这个 StackExchange 答案 Get the current user interacting with a site workflow

如果你想在登录时获取当前用户,你可以尝试这样的事情

SPWeb webSite = SPControl.GetContextWeb(SPContext);
SPUser spUser = webSite.CurrentUser;
string strUserName = spUser.LoginName;

使用下面这一行将返回OriginatorUser,但是如果您不是以管理员身份登录,您将获得系统帐户用户名

//This give the Login name e.g <domain>\<name>  
workflowProperties.OriginatorUser.LoginName;

** 注意 ** 我注意到在你的代码中你试图获取/分配用户两次 如果你决定使用你的代码,你应该只需要这一行

SPUser user = SPContext.Current.Web.CurrentUser;

关于c# - 如何在 Sharepoint 站点工作流程 2010 中获取当前用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14510256/

相关文章:

c# - 为什么 C# 允许没有前置语句的 {} 代码块?

SharePoint 2010 在右键单击时向列表项添加选项

ios - 如何从命令行重置 iOS 模拟器?

react-native - 如何在矩阵作业中使用 actions/cache@v2

c# - 如何指定用于 WebClient 类的 SSL 协议(protocol)

c# - 缩放到c#中的一个点

c# - 带字符串组标题的 LongListSelector

java - 从 sharepoint 2010 事件接收器调用 java webservice

javascript - sharepoint 2010 ecmascript 用户配置文件属性

css - Xrefresh 替代方案