WCF customUserNamePasswordValidatorType - PullRequest
2 голосов
/ 28 июля 2010

У меня есть customUserNamePasswordValidatorType, и я хочу установить учетные данные службы в коде в реализации IServiceBehavior ApplyDispatchBehavior ().

Если я установлю его в таком коде, проблема в том, что валидатор никогда не выполнится:

     serviceHostBase.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator =
            new BigIPUsernamePasswordValidator() ;
        serviceHostBase.Credentials.UserNameAuthentication.UserNamePasswordValidationMode =
            UserNamePasswordValidationMode.Custom;

Если я установлю в конфиге, то это произойдет:

<serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" $customUserNamePasswordValidatorType="Quad.WCF.Security.BigIPUsernamePasswordValidator, Quad.WCF" /> </serviceCredentials>

Поведение задается как атрибут в классе обслуживания, и если я устанавливаю точку останова, я вижу, как выполняется приведенный выше код.

Насколько я понимаю, все в конфигурации должно быть в коде. Но это не работает при установке его в реализации IServiceBehavior ApplyDispatchBehavior ().

Кто-нибудь имеет какие-либо идеи, если это должно работать или как я должен делать это по-другому с помощью кода?

1 Ответ

0 голосов
/ 28 сентября 2012

Я реализовал это, и оно работает:

ServiceHost customServiceHost = new ServiceHost(type);
customServiceHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = System.ServiceModel.Security.UserNamePasswordValidationMode.Custom;
customServiceHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new MyCustomUserNameValidator();
customServiceHost.AddServiceEndpoint(typeof(IServiceContract), customBinding, "https://localhost:443");
customServiceHost.Open();

Мой пользовательский валидатор такой же простой, как (только пример, не используйте такой как этот!)Вы получаете какие-то конкретные исключения или это просто не вызывается?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...