【发布时间】:2011-12-21 18:01:27
【问题描述】:
我有一个通过我的 web.config 与 UserNamePasswordValidator 连接的 WCF 服务,没有问题。在我的验证器中,我重写了 Validate,检查凭据并在必要时抛出一个 FaultException。
例子:
public class CredentialValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if (userName != "dummy")
{
throw new FaultException<AuthenticationFault>(new AuthenticationFault(), "Invalid credentials supplied");
}
}
}
如果我自己在 .NET 应用程序中使用此服务并提供无效凭据,则会引发 MessageSecurityException 并显示以下消息:
“从另一方收到不安全或不正确安全的故障。有关故障代码和详细信息,请参阅内部的 FaultException。”
我预期的 FaultException 是 MessageSecurityException 的 InnerException。
有什么方法可以让客户端只收到 FaultException?
MessageSecurityException 并没有特别描述异常的真正原因(快速搜索 SO 会产生各种问题,包括服务器/客户端时间同步..),并且由于第三方将使用该服务,我'希望尽可能清楚。
【问题讨论】:
标签: c# wcf authentication validation fault