WCF с базовой аутентификацией Http
-
20-09-2019 - |
Вопрос
Я создаю веб-сервис, который должен быть доступен для множества потенциальных платформ, включая ряд старых приложений ASP и ASP .NET.После некоторых исследований я остановился на службе WCF с конечной точкой REST (webHttpBinding) и SOAP (wsHttpBinding) (таким образом я могу поддерживать широкий спектр платформ и по-прежнему радовать программистов .NET).
В целях безопасности я использую базовую аутентификацию SSL и HTTP для своей собственной базы данных имен пользователей и паролей.Поэтому я написал HttpModule для обработки имен пользователей и паролей и проверки SSL.Теперь настройка REST работает отлично, но у меня возникли проблемы с конечной точкой SOAP.Независимо от того, какие настройки я использую, клиент SOAP никогда не отправляет мне заголовок WWW-Authorization, который я могу использовать для аутентификации.Я предполагаю, что установка что-то вроде <message clientCredentialType="UserName" />
должен сообщить WCF, что я ожидаю заголовок авторизации, и эта информация будет получена Visual Studio (или любым другим клиентом) при создании веб-ссылки.Возможно, я просто безнадежно наивен.
Итак, подытожим вопрос:Могу ли я каким-либо образом сказать WCF отправить мне заголовок WWW-Authorization (т. е. базовый заголовок HTTP) вместе с мыльными сообщениями?
Решение
Вы можете создавать собственные заголовки для аутентификации.
Взгляни здесь