Вы можете проверить ServiceSecurityContext
на OperationContext
внутри вашего класса обслуживания WCF, и по этому вы можете определить, как пользователь был аутентифицирован (если вообще).
ServiceSecurityContext security =
OperationContext.Current.ServiceSecurityContext;
Теперь у вас может быть один из них в контексте безопасности:
- PrimaryIdentity. Содержит требование идентификации из набора утверждений в качестве традиционной ссылки IIdentity.
- WindowsIdentity. Содержит утверждение удостоверения из набора утверждений, если это WindowsIdentity.
Если у вас есть другие механизмы аутентификации (например, сертификаты или федеративная аутентификация), ваш PrimaryIdentity
будет содержать подходящую идентификацию для этого механизма.
Подробное обсуждение этой темы см. В Основах безопасности WCF (ссылка на страницу 3).