我要通過我的web.config,有沒有問題迷上了一個UserNamePasswordValidator WCF服務。在我的驗證器中,我重寫了Validate,檢查憑據並在必要時拋出FaultException。UserNamePasswordValidator可以拋出MessageSecurityException之外的其他東西嗎?
實施例:
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上快速搜索會產生各種問題,包括服務器/客戶端時間同步...)並不是特別描述性的,並且由於第三方將使用該服務,我想盡可能清楚。
我不需要向客戶端提供有關驗證失敗的詳細信息,所以我想我會繼續從我的驗證器中拋出faultexception。 – diggingforfire 2011-12-26 11:51:02