Я пытаюсь (отчаянно) получить поставщика проверки подлинности клиента, работающего для моей службы WCF. Пока у меня есть следующий код;Поставщик пользовательской аутентификации WCF
web.config
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="MyNamespace.CustomUserNameValidator, MyNamespace" />
</serviceCredentials>
<wsHttpBinding>
<binding name="wsHttpBindingConfig" >
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
Пользовательский класс аутентификации;
public class CustomUserNameValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
// have security details been provided?
if (null == userName || null == password)
{
throw new ArgumentNullException();
}
// authenticate user
if (!(userName == "test" && password == "test"))
{
// This throws an informative fault to the client.
throw new FaultException("SecurityFailed");
}
}
}
Все компилируется нормально, но когда я использую тестовый клиент WCF из визуальной студии вызвать метод под названием Ping (ниже), пользовательские аутентификации никогда не привыкают. Метод Ping просто выполняется и любая точка останова, которая у меня есть в классе CustomUserNameValidator.
Зачем это было? Вся помощь была оценена.
Matt - TransportWithMessageCredentials то, что я использовал раньше, так что я буду возвращаться к тому, что в любом случае. SoapUi также является инструментом, который я использую, но иногда я нахожу его немного временным. Даже используя SoapUi, я не могу заставить его использовать пользовательскую проверку подлинности. Какие-либо предложения? Кроме того, вы говорите: «Я предполагаю, что вам понравится какая-то форма безопасности по линии». Сертификаты в сторону. Это то, что я пытаюсь реализовать. Сообщения SOAP, которые я получаю, включают информацию заголовка WS-Security с именем пользователя и паролем, именно это я пытаюсь проверить. – Carl
Не могли бы вы также предоставить разделы Full behaviors, endpoint и client (если вы используете один) из вашего web.config? –