Для своих служб WCF я реализовал IAuthorizationPolicy и подключил его (и могу подтвердить, что он используется).
В методе Evaluate() я устанавливаю собственный принципал следующим образом:
evaluationContext.Properties["Principal"] = myCustomPrincipal;
Однако при вызове службы Thread.CurrentPrincipal является GenericPrincipal!
Поведение моего сервиса настроено следующим образом:
<serviceAuthorization principalPermissionMode="Custom">
<authorizationPolicies>
<add policyType="MyNamespace.MyPrincipalAuthorizationPolicy, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</authorizationPolicies>
</serviceAuthorization>
Я попытался использовать отражатель, чтобы увидеть, что происходит, но не увидел ничего полезного.
Я делаю это неправильно? Есть ли какая-то конфигурация, которую мне не хватает?