SharePoint: как пройти аутентификацию с c # - PullRequest
2 голосов
/ 26 августа 2009

У меня есть следующий фрагмент кода:

using (SPSite site = new SPSite(this.ListAddress))
        {
            using (SPWeb web = site.OpenWeb())
            {

            }

        }

Как мне пройти аутентификацию, чтобы я мог установить имя пользователя домена и пароль в файле конфигурации.

Ответы [ 3 ]

9 голосов
/ 27 августа 2009

Сделайте пользователя, для которого вы хотите запустить код, известным в SharePoint, затем, используя

SPSite.RootWeb.EnsureUser("username").UserToken вы можете получить SPUserToken этого пользователя используйте это, чтобы открыть SPSite, вот так

var token = SPSite.RootWeb.EnsureUser("usernameToImpersonate").UserToken;

using (SPSite site = new SPSite(token, this.ListAddress))
{
  using (SPWeb web = site.OpenWeb())
  {
    // code here will be executed as selected user
  }
}
2 голосов
/ 26 августа 2009

Код, запущенный выше, будет аутентифицирован под идентификатором текущего пользователя, т.е. идентификатором пользователя, выполняющего текущий поток.

Вы можете запускать код под другим пользователем, используя класс NetworkCredntial вместе с классом WindowsIdentity

См. Эти два статьи:

http://msdn.microsoft.com/en-us/library/system.net.networkcredential%28VS.71%29.aspx

http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx

1 голос
/ 27 августа 2009

Не совсем понятно, что вы хотите сделать из вопроса. Однако, если вы ищете олицетворение, обратите внимание, что вы можете пройти через объект SPUserToken в конструкторе SPSite .

Любые объекты, которые вы затем создаете из олицетворенного объекта SPSite, будут вести себя так, как если бы они были созданы этим пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...