Не удается получить FormsAuthentication для правильной работы с WCF - PullRequest
1 голос
/ 15 апреля 2010

У меня есть проект wcf и asp.net вместе в одном проекте. (Я работаю на Azure, так что это удобнее).

У меня есть этот набор в web.config:

<system.serviceModel>  
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
</system.serviceModel>

Мой сервис wcf украшен:

[AspNetCompatibilityRequirements(
    RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

Если эти атрибуты установлены, не должен ли HttpContext.Current.User автоматически устанавливаться для меня, когда я запускаю методы в своем сервисе wcf? В настоящее время HttpContext.Current.User имеет значение null и не устанавливается для меня автоматически.

Я думал, что если бы я использовал aspNetCompatibilityEnabled, то метод Application_AuthenticationRequest сработал бы в Global.asax при выполнении метода wcf, но это не так.

Файл cookie .aspxauth правильно передается службе wcf, и я могу вручную расшифровать файл cookie и установить текущего пользователя.

Предложения о том, почему это не работает так, как я ожидаю?

1 Ответ

0 голосов
/ 15 апреля 2010

Получаете ли вы ожидаемый идентификатор пользователя в

ServiceSecurityContext.Current.PrimaryIdentity

поле, которое доступно внутри кода вашего серверного метода ?? Это должна быть какая-то форма потомка IIdentity с информацией о пользователе, если она доступна.

...