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