У меня есть служба 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 - это InnerException в MessageSecurityException.
Есть ли способ, чтобы клиент получал только исключение FaultException?
MessageSecurityException не особо описывает истинную причину исключения (быстрый поиск по SO приводит к множеству проблем, включая синхронизацию времени сервера / клиента ..), и, поскольку сервис будет использовать третья сторона, я бы хотел быть максимально ясным.