У меня есть служба RESTful WCF с использованием обычной проверки подлинности, настраиваемый узел службы и файл. У меня настроен пользовательский UserNamePasswordValidator, и пользовательский IPrincipal правильно проходит через операцию. Однако для совместимости с прежними версиями мне необходимо поддерживать другой режим аутентификации. Как это должно работать:
- Пользовательские POST-сообщения для URI входа
- Служба аутентифицирует пользователя, как указано выше, но возвращает токен сеанса (зашифрованные учетные данные пользователя) в качестве заголовка ответа HTTP.
- Все последующие запросы от пользователя содержат токен сеанса вместо обычной проверки подлинности.
Моя текущая мысль такова: если токен сеанса содержит зашифрованные учетные данные, тогда должна быть возможность манипулировать входящим сообщением, расшифровывая учетные данные и заменяя заголовок сеанса заголовком базовой проверки подлинности. Моя проблема - найти точку расширяемости, которая:
- Каким-то образом раскрывает свойства сообщения И
- Выполняется перед выполнением настраиваемого UserNamePasswordValidator ..
Кто-нибудь из вас, гуру, знает о такой точке расширения или способе настройки механизма безопасности транспорта? Честно говоря, меня сбивает с толку огромное количество вариантов, а просмотр пространств имен System.ServiceModel в Reflector был разочарованием.
Спасибо!