Я написал модуль IIS (базовый IHttpModule), который выполняет некоторую пользовательскую (OpenAuth) аутентификацию перед тем, как перейти к моей службе REST WCF.
Я расширил GenericPrincipal для отслеживания моего пользователя с помощью IIdentity и установил
поле context.User для моего нового принципала:
application.context.User = principal
Однако, когда я получаю контекст в WCF (следующий шаг по конвейеру), пользователь обнаруживается как не прошедший проверку подлинности WindowsPrincipal «по умолчанию» (а не GenericPrincipal, который я установил).
Я вижу много вещей в сети о том, как сделать эту работу (включая aspNetCompatibilityEnabled = "true" для serviceHostingEnvironment, игры с OperationContext и т. Д ...) Но ничего из того, что я пробовал, похоже, не работает.
Два вопроса:
- Есть ли способ заставить это работать (или я просто лаю не туда)?
- Каков будет канонический способ сделать это, или, может быть, более "WCF" способ обработать эту пользовательскую аутентификацию.
Спасибо