Как найти авторизованного пользователя в Sharepoint? - PullRequest
13 голосов
/ 11 марта 2010

Я разработал «веб-часть», которую необходимо развернуть на сервере Sharepoint. Мне нужно имя пользователя, который вошел на сервер sharepoint в веб-части.

Как мне получить это имя пользователя?

Ответы [ 6 ]

28 голосов
/ 11 марта 2010

Следующее сработало у меня:

SPWeb theSite = SPControl.GetContextWeb(Context);
SPUser theUser = theSite.CurrentUser;
string strUserName = theUser.LoginName;

и отметьте это .

12 голосов
/ 11 марта 2010

Вы можете использовать:

SPWeb web = SPControl.GetContextWeb(this.Context);
string userName = web.CurrentUser.LoginName;

или

string userName = this.Context.User.Identity.Name;

И вам также следует проверить this.Context.User.Identity.IsAuthenticated, чтобы убедиться, что пользователь вошел в систему, прежде чем пытаться извлечь имя пользователя.

3 голосов
/ 12 марта 2010

Привет всем, я получил ответ на свой вопрос. Надеюсь, это сработает для вас всех ... Сначала добавьте ссылку на файл 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;

С уважением, Джигар <3 </p>

2 голосов
/ 30 июля 2013

SPContext.Current.Web.CurrentUser

0 голосов
/ 08 июля 2015

Вы также можете получить текущий зарегистрированный идентификатор пользователя с помощью свойства _spPageContextInfo .

 _spPageContextInfo.userId

Вы получите идентификатор текущего пользователя по _spPageContextInfo . Попробуйте это может помочь вам.

0 голосов
/ 03 августа 2010

// не забудьте добавить 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);
    }
...