我开发了一个必须部署在Sharepoint服务器上的“Web部件”。我需要用户的用户名,该用户已登录Web部件中的sharepoint服务器。
如何获取该用户名?
答案 0 :(得分:28)
以下为我工作:
SPWeb theSite = SPControl.GetContextWeb(Context);
SPUser theUser = theSite.CurrentUser;
string strUserName = theUser.LoginName;
并检查this。
答案 1 :(得分:12)
您可以使用:
SPWeb web = SPControl.GetContextWeb(this.Context);
string userName = web.CurrentUser.LoginName;
或
string userName = this.Context.User.Identity.Name;
您还应该检查this.Context.User.Identity.IsAuthenticated
以确保在尝试提取用户名之前有用户登录。
答案 2 :(得分:3)
嘿所有,我得到了我的问题的答案希望这对你们都有用...... 首先在Web部件中添加对MicrosoftSharepoint.dll文件的引用。 然后写 使用Microsoft.SharePoint;
string username;
string sspURL = "URL where Sharepoint is deployed";
SPSite site = new SPSite(sspURL);
SPWeb web = site.OpenWeb();
SPUser user = web.CurrentUser;
username = user.LoginName;
site.AllowUnsafeUpdates = true;
此致, Jigar< 3
答案 3 :(得分:2)
SPContext.Current.Web.CurrentUser
答案 4 :(得分:0)
//不要忘记添加System.DirectoryServices.AccountManagement作为参考并使用System.DirectoryServices.AccountManagement;
PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, "MyDomain","DC=MyDomain,DC=com");
UserPrincipal insUserPrincipal = new UserPrincipal(insPrincipalContext);
insUserPrincipal.Name = "*";
PrincipalSearcher insPrincipalSearcher = new PrincipalSearcher();
insPrincipalSearcher.QueryFilter = insUserPrincipal;
PrincipalSearchResult<Principal> results = insPrincipalSearcher.FindAll();
foreach (Principal p in results)
{
Console.WriteLine(p.Name);
}
答案 5 :(得分:0)
您还可以通过 _spPageContextInfo 属性获取当前记录的用户ID。
_spPageContextInfo.userId
您将通过 _spPageContextInfo 获取当前用户的ID。试试这可能会对你有帮助。