WCF как передать токен для аутентификации?
У меня есть служба WCF, которая хотела бы поддерживать basicHttpBinding и webHttpBinding. Когда клиент успешно войдет в систему, сервер сгенерирует токен для передачи клиенту на сервер на всех последующих запросах. Вопрос в том, как клиент может передать токен на сервер? Я не хочу добавлять дополнительный параметр в каждый веб-метод для хранения токена.
1 ответов
как правило, лучший способ сделать что-то подобное-передать такую "метаинформацию" в заголовке WCF. Вы можете легко создать инспектор сообщений для расширения WCF (это действительно не так страшно и трудно сделать!) который будет вводить токен в каждый исходящий запрос от клиента, извлекать его из заголовка и проверять его на стороне сервера.
есть несколько довольно хороших сообщений в блоге, показывающих вам, как создать сообщение инспектор:
- Ричард Hallgren это!--10-->проводки WCF
- написание инспектора сообщений WCF
- автоматическая культура течет с WCF с помощью пользовательского поведения
Проверьте два соответствующих интерфейса для реализации:
-
IClientMessageInspector на стороне клиента, который имеет
BeforeSendRequest
иAfterReceiveReply
сообщение реализовать -
IDispatchMessageInspector на стороне сервера, который имеет
AfterReceiveRequest
иBeforeSendReply
способ реализации