public class X509UserNameValidator: UserNamePasswordValidator { public override void Validate(string userName, string password) { try { if (string.IsNullOrEmpty(userName)) throw new ArgumentNullException("userName"); if (string.IsNullOrEmpty(password)) throw new ArgumentNullException("password"); if (userName != "msky" || password != "msky") throw new SecurityTokenException("用户名或者密码错误!"); } catch (System.Exception ex) { Console.WriteLine(ex.Message); throw; } } }
这是重写的验证函数,客户端该如何获取错误信息的描述?,假如验证失败引发异常
WCF已经设置返回错误信息了
<serviceDebug includeExceptionDetailInFaults="true"/>
但是客户端捕获时还是:
从另一方收到未进行安全处理或安全处理不正确的错误。有关错误代码和详细信息,请参见内部 FaultException。
方法上加个FaultContract,然后自己加下处理,应用端catch下FaultException就可以拿到你服务端自定义的错误了。
一语中要害~~感谢您一直给予帮助,让我少走很多弯路