Как получить WindowsIdentity для удаленного пользователя, вошедшего в систему?

Я работаю над клиент-серверным приложением со следующими деталями:

Client(C++) -----------HTTPS---     Server (C#/WCF)

сервер:

  • С пользователями в домене Windows Active Directory
  • Служба WCF, работающая в IIS, предоставляющая службу проверки подлинности в Windows AD
  • Предоставляет API аутентификации на основе REST, который использует Windows API logonUser.

клиент:

  • Клиент использует REST SDK (на основе Visual Studio 2013) для подключения к серверу
  • Клиент предоставляет API аутентификации для аутентификации с использованием HTTPS.

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

  • Пользователь AD входит в клиент и вызывает API аутентификации
  • Данные текущего зарегистрированного пользователя должны быть отправлены на сервер с использованием HTTPS (конечно, только имя пользователя)
  • Создайте структуру WindowsIdentity с информацией, полученной от клиента.

Я пробовал следующее:

  • Чтобы получить SID с клиентского компьютера и передать его на сервер. Воссоздайте WindowsIdentity из SID входа клиента.
    • Я не мог получить WindowsIdentity от переданного SID.

Вопросы:

  1. Как получить идентификатор Windows на сервере (C #) из SID вошедшего в систему пользователя AD, переданного от клиента?
  2. Есть ли другие лучшие способы для достижения вышеуказанной настройки?

0

Решение

ты пытался

ServiceSecurityContext.Current.WindowsIdentity.Name

но нет способа конвертировать формат имени пользователя без запроса в Active Directory. Поскольку это так, нет необходимости создавать WindowsPrincipal для проверки членства в группе, поскольку для этого, вероятно, потребуется еще одно подключение к AD.
попробуйте использовать решение, предоставленное в эта ссылка

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]