WCF как передать токен для аутентификации?

У меня есть служба WCF, которая хотела бы поддерживать basicHttpBinding и webHttpBinding. Когда клиент успешно войдет в систему, сервер сгенерирует токен для передачи клиенту на сервер на всех последующих запросах. Вопрос в том, как клиент может передать токен на сервер? Я не хочу добавлять дополнительный параметр в каждый веб-метод для хранения токена.

1 ответов


как правило, лучший способ сделать что-то подобное-передать такую "метаинформацию" в заголовке WCF. Вы можете легко создать инспектор сообщений для расширения WCF (это действительно не так страшно и трудно сделать!) который будет вводить токен в каждый исходящий запрос от клиента, извлекать его из заголовка и проверять его на стороне сервера.

есть несколько довольно хороших сообщений в блоге, показывающих вам, как создать сообщение инспектор:

Проверьте два соответствующих интерфейса для реализации:

  • IClientMessageInspector на стороне клиента, который имеет BeforeSendRequest и AfterReceiveReply сообщение реализовать
  • IDispatchMessageInspector на стороне сервера, который имеет AfterReceiveRequest и BeforeSendReply способ реализации