从列表中的SharePoint用户字段获取用户名

时间:2009-12-02 19:50:27

标签: sharepoint moss workflow workflow-foundation

我有一个我在Visual Studio中开发的自定义sharepoint工作流程。工作流针对文档库运行,文档库具有连接到它的自定义内容类型。内容类型包括用户查找字段(“所有者”)。

我正在尝试让我的工作流程将任务分配给“所有者”查找字段。但是,我只能获取用户的显示名称,而不是帐户用户名。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:10)

请参阅此Article,了解如何从现场获取用户详细信息。

public static SPUser GetSPUser(SPListItem item, string key) {
     SPFieldUser field = item.Fields[key] as SPFieldUser;

     if( field != null) {   
         SPFieldUserValue fieldValue = field.GetFieldValue(item[key].ToString()) as SPFieldUserValue; 

         if(fieldValue != null)     
            return fieldValue.User; 
      }
      return null; 
 }

您的代码应该是这样的

SPUser spUser=GetSPUser(splistItem,"Owner");
String sUserName=(spUser!=null)?spUser.UserName:null;

答案 1 :(得分:4)

我的解决方案:

public static SPUser GetSPUser(SPListItem item, string key)   
{
    SPUser user=null;   
    SPFieldUserValue userValue = new SPFieldUserValue(item.Web, item[key].ToString());
    if (userValue != null)
    {
        SPUser user = userValue.User;
    }
return user;
}

如何致电:

SPUser spUser=GetSPUser(splistItem,"Owner"); 

这是经过测试的代码,工作正常。