netTcpBinding と security mode="Message" および clientCredentialType="UserName" を使用して単純な WCF サービスを作成しました。有効なユーザー名とパスワードを渡すと、すべてが正常に機能し、希望どおりにセッションが確立されます。ただし、資格情報が間違っていると、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();
}
}