Может ли UserNamePasswordValidator выбросить что-нибудь кроме MessageSecurityException?

У меня есть служба WCF, связанная с UserNamePasswordValidator через мой web.config, никаких проблем там нет. В моем валидаторе я переопределяю 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.

Есть ли способ заставить клиента получать только FaultException?

MessageSecurityException не особенно описано относительно истинной причины исключения (быстрый поиск на SO дает множество проблем, включая синхронизацию времени сервера/клиента...), и поскольку третья сторона будет потреблять сервис, я хотел бы быть как можно более ясным.

5
задан diggingforfire 21 December 2011 в 18:01
поделиться