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