Как найти авторизованного пользователя в Sharepoint?

Вы используете Thread.Join, чтобы приостановить поток пользовательского интерфейса, пока не будет выполнен другой поток. В то же время вы используете Control.Invoke, чтобы поток пользовательского интерфейса выполнял некоторые действия. Это не сработает, потому что поток пользовательского интерфейса ожидает завершения другого потока.

Я бы предложил вам либо удалить вызов Thread.Join, либо выполнить свое действие в потоке пользовательского интерфейса, если вы хотите, чтобы он подождал для завершения действия.

13
задан Eric Leschinski 10 April 2014 в 13:32
поделиться

4 ответа

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

4
ответ дан 1 December 2019 в 17:51
поделиться

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

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

и проверьте это .

28
ответ дан 1 December 2019 в 17:51
поделиться

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

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

или

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

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

12
ответ дан 1 December 2019 в 17:51
поделиться

// не забудьте добавить 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);
    }
0
ответ дан 1 December 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: