2010-01-15 3 views
3

У меня есть служба WCF, которая имеет способ вернуть имя пользователя Windows клиента Silverlight, который использует эту службу. Служба WCF использует basicHttpBinding с установленным режимом TransportCredentialOnly и значением параметра TransportClientCredentialType для Windows. В IIS аутентификация Windows включена и анонимная аутентификация отключена.HttpContext.Current.User всегда null

Несмотря на (по-видимому) правильную настройку службы, когда я звоню в службу и прошу вернуть ее имя. Более тщательное обследование показывает, что HttpContext.Current.User всегда имеет значение null (поэтому генерируется исключение nullreference).

Есть ли у кого-нибудь другие идеи, почему это не работает?

ответ

4

Попробуйте добавить -

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

в файл конфигурации

+2

Это сработало спасибо! Также стоит отметить, что вам также необходимо добавить [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] в ваш класс – Calanus

1

В WCF, есть OperationContext объект, из которого вы можете получить учетные данные безопасности, передаваемые в вызывающей/клиента, используя ServiceSecurityContext недвижимость ,

Смежные вопросы