从 Sharepoint 中的当前用户获取名字和姓氏

Get first and lastname from current user in Sharepoint

如何在 Sharepoint 中获取当前用户的名字和姓氏? 我的猜测是使用 UserProfile 属性 但我无法让它工作。我需要一个 nugetpackage 吗?但是我的虚拟机没有互联网连接,所以我不能那样做。

您可以创建 UserCollection 或 User 变量。然后你可以用“”分割标题文本。这将帮助您获得名字、姓氏和中间名。

   UserCollection managerGroupUsers = _managerGroupName.Users;                         
                        clientContext.Load(managerGroupUsers);
                        clientContext.ExecuteQuery();
                        string[] Username=null;
                        foreach (User u in managerGroupUsers)
                        {
                             Username= u.Title.Split(' ');
                            string firstName = Username[0];
                            string LastName = Username[1];

                        }

为您的站点创建 clientcontext 并添加以下代码 `

Group _managerGroupName=null; 
    if (clientContext != null)
                        {
                            var siteColl = clientContext.Site;
                            var web = siteColl.RootWeb;
                            GroupCollection groupColl = web.SiteGroups;`

                            clientContext.Load(siteColl);
                            clientContext.Load(web);




                            clientContext.ExecuteQuery(); 


    _managerGroupName = web.AssociatedOwnerGroup;
                                clientContext.Load(_managerGroupName);
                                clientContext.ExecuteQuery();                  
    UserCollection managerGroupUsers = _managerGroupName.Users;
            clientContext.Load(managerGroupUsers);
            clientContext.ExecuteQuery();
            string[] Username = null;
            foreach (User u in managerGroupUsers)
            {
                Username = u.Title.Split(' ');
                string firstName = Username[0];
                string LastName = Username[1];

            }     

从您的 pastebin 看来,您正在制作一个新的服务器端 Web 部件。所以你不需要Microsoft.SharePoint.Client。前面的示例是使用客户端对象模型完成的,但您使用的是服务器对象模型。将 onStart() 函数的内容替换为:

SPUser currentUser = SPContext.Current.Web.CurrentUser;
string[] nameSegments = currentUser.Name.Split(' ');
this.Controls.Add(new LiteralControl("<div>First Name: " + nameSegments[0]));
this.Controls.Add(new LiteralControl("<div>Last Name: " + nameSegments[1]));