Конечные точки WCF определяют, какой метод Auth вызван - PullRequest
2 голосов
/ 18 января 2011

Изнутри службы WCF можно определить метод проверки подлинности, который вызвал службу?

Например;

if (Forms Authentication) {
  //do something
}

if (WindowsAuthentication) {
  //do something else
}

1 Ответ

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

Вы можете проверить ServiceSecurityContext на OperationContext внутри вашего класса обслуживания WCF, и по этому вы можете определить, как пользователь был аутентифицирован (если вообще).

ServiceSecurityContext security = 
      OperationContext.Current.ServiceSecurityContext;

Теперь у вас может быть один из них в контексте безопасности:

  • PrimaryIdentity. Содержит требование идентификации из набора утверждений в качестве традиционной ссылки IIdentity.
  • WindowsIdentity. Содержит утверждение удостоверения из набора утверждений, если это WindowsIdentity.

Если у вас есть другие механизмы аутентификации (например, сертификаты или федеративная аутентификация), ваш PrimaryIdentity будет содержать подходящую идентификацию для этого механизма.

Подробное обсуждение этой темы см. В Основах безопасности WCF (ссылка на страницу 3).

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