При защите службы WCF я хочу использовать свой пользовательский субъект активного каталога, используемый на веб-сайте asp.net, на котором размещается служба. Все хорошо при навигации по сайту, и пользовательский принципал настраивается с использованием следующего кода
static void context_AuthenticateRequest (отправитель объекта, EventArgs e)
{
CustomIdentity удостоверение личности;
CustomPrincipal Principal = GetPrincipalFromCookie ();
if (principal == null)
{
... create principal from active directory
... Store Principal in a cookie
}
HttpContext.Current.User = principal;
Thread.CurrentPrincipal = principal;
}
ОДНАКО, когда я делаю вызов WCF для своей службы, появляется диалог входа в систему, удаляя строку HttpContext.Current.User = принципал, в результате диалог входа в систему не появляется, но это мне не нужно, так как мне это нужно, чтобы WebUserSecurityContext быть заполненным для моего заявления. Я использую customBinding с NTLM
<httpTransport authenticationScheme="Ntlm"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647" proxyAuthenticationScheme="Anonymous"/>
</binding>
</customBinding>
Мне не хватает параметра в моей конфигурации, чтобы предотвратить это диалоговое окно входа в систему или есть лучший способ? любая помощь будет оценена