Найти имя пользователя домена Active Directory вызывающей службы WCF - PullRequest
8 голосов
/ 01 февраля 2011

Рассмотрим службу WCF, использующую WsHttpBinding, для которой только пользователи домена могут вызывать эту службу.

Как узнать имя пользователя вызывающего абонента в Active Directory?

Ответы [ 3 ]

14 голосов
/ 01 февраля 2011

Получить значение System.ServiceModel.ServiceSecurityContext.Current.WindowsIdentity.Name свойства.

Неважно, какую привязку вы используете, если режим безопасности отличается от None для привязки.

Если режим безопасности None, тогда System.ServiceModel.ServiceSecurityContext.Current будет null.

9 голосов
/ 01 февраля 2011

Вы можете получить личность пользователя, позвонив по телефону:

ServiceSecurityContext.Current.WindowsIdentity.Name

или

OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name
0 голосов
/ 01 февраля 2011

Вам нужно будет добавить какую-либо информацию о пользователе в структуру сообщения, которое вы используете для связи со службой.

например,

public class UserInformation
{
  public string User { get; set; }
  public string Password { get; set; }
}

[DataContract]
public class Request
{
  [DataMember]
  public UserInformation User { get; set; }
  [DataMember]
  public MyRequest RequestBody { get; set; }
}

Таким образом, вы можете запросить активный каталог на вашемна стороне клиента, заполните объект UserInformation и отправьте данные пользователя как часть структуры сообщения.

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