У меня есть служба WCF, размещенная в консольном приложении. Мне нужно использовать собственный валидатор имени пользователя и пароля (для этой цели я написал класс, который наследуется от UserNamePasswordValidator). Мне нужно использовать http (не https). Какая конфигурация является правильной (с точки зрения типа привязки, режима безопасности) для настройки этой конфигурации? Заранее спасибо... Андреа С
Конфигурация безопасности WCF
Ответы (1)
Вы понимаете, что при использовании HTTP вместо HTTPS имя пользователя и пароль будут отправляться по сети в виде простого текста и могут быть легко перехвачены?
Если вы используете .NET 3.5, вы можете защитить сообщение или транспортный канал с помощью пользовательского файла UserNamePasswordValidator
. Если вы используете .NET 3.0, вы можете использовать безопасность сообщений только с пользовательским UserNamePasswordValidator
. Дополнительные сведения см. в разделе Практическое руководство. Использование собственного средства проверки имени пользователя и пароля. Информация.
Например, если вы используете .NET 3.5 и хотите использовать безопасность транспорта, вы можете использовать следующую конфигурацию. Вы должны не забыть добавить поведение службы, которое позволит WCF узнать о вашем пользовательском классе UserNamePasswordValidator
.
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="** The fully qualified type name for your UserNamePasswordValidator **" />
</serviceCredentials>
</behaviors>
</system.serviceModel>