Получение SecurityIdentifier (SID) только от имени пользователя домена (c #) - PullRequest
1 голос
/ 26 января 2011

Я хочу получить домен SID из учетной записи пользователя, которая использовалась для доступа к моей веб-странице, но ...

В некоторых случаях вы не имеют доступ к объекту HttpContext для вызова HttpContext.Current.Request.LogonUserIdentity.User.Value

Все, что может принять статическая функция, это имя пользователя в виде строки и имя домена в виде строки.

Если домен оставлен пустым, забавно, что имя учетной записи пользователя находится в том же домене, что и сервер IIS, на котором выполняется процесс.: /

Ваша помощь будет признательна, как всегда.Приветствия.

Ответы [ 2 ]

1 голос
/ 27 января 2011

Чтобы получить домен пользователя, вы можете использовать LookupAccountName .В случае, если вам нужен образец pinvoke, получите его с pinvoke.net

Вы передаете DOMAIN\UserName функции.Функция LookupAccountName вернет вам SID пользователя и имя домена.

Я подозреваю, что вам не нужно знать SID домена.Я думаю, что возвращенного доменного имени должно быть достаточно для вас.Если вы действительно хотите знать SID домена, вы можете извлечь его непосредственно из возвращенного SID пользователя.

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

0 голосов
/ 27 января 2011

Попробуйте использовать службы каталогов? Для этого нужен .Net 3.5:

public UserPrincipal GetUserPrincipal(string userName)
    {            
        PrincipalContext ctx = new PrincipalContext(ContextType.Domain, LDAPDomain, LDAPUser, LDAPPassword);                     
        return UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userName);            
    }

Затем вы можете использовать класс UserPrincipal, который имеет метод .Sid.

Я установил информацию о своем домене и учетной записи AD из web.config следующим образом

private String LDAPDomain
    {
        get
        {
            return ConfigurationManager.AppSettings["LDAPDomain"];
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...