WCF Передача дополнительных данных безопасности через все сервисные вызовы - PullRequest
3 голосов
/ 16 сентября 2009

Клиентская часть. Мне нужно передавать часть информации (в этом примере, скажем, строку) каждому вызову службы, который я делаю. Службы используют эту строку (currentRole) вместе с учетными данными user / pass для получения набора утверждений пользователя, связанных с их текущей ролью.

Решения, с которыми я сталкивался до сих пор:

1) Измените заголовки сообщений по мере их выхода из клиента и убедитесь, что заголовок сообщения находится на стороне службы.

2) Используйте пользовательские учетные данные, для которых, как я понимаю, также требуется специальный токен безопасности для хранения строки.

Существуют ли какие-либо другие подходы, которые я пропускаю, например, просто добавление этой информации в существующий токен / учетные данные? И есть ли плюсы / минусы решений, упомянутых выше?

Спасибо.

1 Ответ

1 голос
/ 16 сентября 2009

Вы также можете написать поведение на стороне клиента, которое добавит этот заголовок к сообщениям (так что вам не придется думать о том, чтобы сделать это самостоятельно в своем коде).

Вы можете реализовать IClientMessageInspector и в переопределении метода BeforeSendRequest добавить заголовок сообщения. Когда вы добавляете это поведение к каждой из ваших конечных точек клиента, он автоматически добавляет этот заголовок сообщения к каждому исходящему сообщению.

См. статью CodeProject для ознакомления с начальной информацией и публикацию в блоге для получения более подробных знаний.

Марк

...