У меня есть веб-сервис wcf + rest с aspNetCompatibility = "true". Для обеспечения пользовательской аутентификации я написал asp.net http module: IHttpModule. Код довольно прост: просто назначьте некоторую директиву свойству Thread.CurrentPrinicpal.WCF set Thread.CurrentPrincipal через IHttpModule
Во время выполнения метода я все еще получаю «пустой/по умолчанию» основной как значение Thread.CurrentPrincipal. Также я заметил, что в модуле и выполнении операции есть разные идентификаторы потоков (Thread.CurrentThread). У меня есть предположение, что wcf предоставляет новый поток для выполнения операции, но не нашел никаких доказательств.
Итак, вопрос: исправляюсь ли я? Позволяет ли wcf контролировать это поведение? Я запутался здесь, потому что создание нового потока автоматически переместит принципал в новый поток. Следовательно, wcf 'clean' их.
Та же проблема с mainPermissionMode = "None".
Я был бы признателен за любые идеи!
Cheers!
Вы имеете право с первого предложения. На самом деле я решил IAuthorizationPolicy с wcf. Но, как я писал, я хочу получить четкое представление о том, почему он работает таким образом, и есть ли у нас какие-либо настройки для контроля этого поведения? – SchmerZ