Я написал простой сервис WCF с использованием netTcpBinding и security mode = "Message" и clientCredentialType = "UserName". Все работает нормально, когда я передаю действительные имя пользователя и пароль, сессия устанавливается так, как я хотел.
Однако, когда учетные данные неверны, генерируется исключение, хотя я не могу перехватить его в своем клиентском приложении в блоке try catch.
У кого-нибудь была такая же проблема?
Вот мой пользовательский валидатор ...
public class UserValidator : UserNamePasswordValidator
{
static int counter = 0;
public override void Validate(string userName, string password)
{
++counter;
Console.WriteLine(counter.ToString() + " " + DateTime.Now.ToShortTimeString());
if (userName != "test" || password != "test")
throw new FaultException("Bad username or password");
//throw new SecurityTokenException();
}
}