Я тестирую CustomUserNamePassword Validator для WCF, и пока он работает, только если я проверяю проверку имени пользователя и проверку пароля. Если я использую что-то еще, такое как test1 для имени пользователя и test1 для пароля, это вызывает FaultException. Вот код валидатора:
public override void Validate(string userName, string password)
{
if (userName != "test" || password != "test")
throw new FaultException("Username and Password Failed");
}
Я использую консольное приложение для подключения к размещенной службе IIS и вызываю создание учетных данных следующим образом:
client.ClientCredentials.UserName.UserName = "test";
client.ClientCredentials.UserName.Password = "test";
Вышеприведенное работает, но если я жестко закодирую валидатор в нечто вроде test1 и test1, а затем сделаю:
client.ClientCredentials.UserName.UserName = "test1";
client.ClientCredentials.UserName.Password = "test1";
Вышеперечисленное не работает, даже если у меня есть:
public override void Validate(string userName, string password)
{
if (userName != "test1" || password != "test1")
throw new FaultException("Username and Password Failed");
}
Я создаю app.config и ProxyCode с помощью svcutil. Может ли это иметь какое-либо отношение к этому? Я восстановил код.
Я понял, в чем проблема. У меня есть 3 решения (библиотека служб WCF, веб-сайт WCF, использующий библиотеку служб, и консольное приложение, в котором был создан код, созданный на веб-сайте служб WCF url wsdl). Я обновлял сервисную библиотеку WCF и консольное приложение, но не обновлял ссылку на веб-сайт. Как только я это сделал, все заработало нормально.
Спасибо за помощь.