Можете ли вы использовать собственный поставщик членства с userNamePasswordValidationMode? - PullRequest
1 голос
/ 05 октября 2010

Каждый пример, который я вижу, использует поставщика членства по умолчанию с userNamePasswordValidationMode, но можно ли указать MembershipProvider для userNamePasswordValidationMode в ServiceCredentials для службы REST WCF, если у меня есть пользовательский поставщик членства?Является ли следующий маршрут наилучшим, если это возможно:

  1. Создание настраиваемого поставщика членства, который реализует поставщика членства.

  2. Создание CustomUserNamePasswordValidatorкоторый реализует UserNamePasswordValidator и переопределяет метод Validate.

  3. В методе Validate проверьте, существует ли пользователь в базе данных.

Проблемы, с которыми я сталкиваюсьЕсли у меня есть метод входа в систему, и он вызывается из веб-браузера с URL http://test.com/service.svc/login,, как я могу получить имя пользователя и пароль.Предположим, что имя пользователя и пароль могут быть введены на веб-странице или могут быть получены из приложения для интеллектуального устройства (android, iphone и т. Д.)

1 Ответ

0 голосов
/ 06 октября 2010

Вы должны быть в состоянии: [HowToUseNonDefaultMembershipProvider] [1] На шаге 1 на странице есть две дополнительные ссылки, первая показывает вам, как создать класс провайдера членства, вторая показывает необходимые записи конфигурации. В то время как вторая ссылка говорит об указании провайдера по умолчанию, вы можете указать любое количество провайдеров в конфигурации, один из них будет по умолчанию:

<system.web>
    <membership defaultProvider="SqlProvider">
        <providers>
            <clear />
            <add name="SqlProvider"
  type="System.Web.Security.SqlMembershipProvider"
  connectionStringName="MySqlConnection"
  applicationName="MyApplication"
  enablePasswordRetrieval="false"
  enablePasswordReset="true"
  requiresQuestionAndAnswer="true"
  requiresUniqueEmail="true"
  passwordFormat="Hashed" />
            <add name="MyProvider"
                     type="MyCompany.MyNamespace.MyMembershipProvider" />
        </providers>
    </membership>
</system.web>

Теперь в примере кода по ссылке выше у вас может быть строка в методе AuthenticationService_Authenticating, например:

e.Authenticated = Membership.Providers["MyProvider"].ValidateUser(e.UserName, e.Password);

В вашем пользовательском классе провайдера вы бы реализовали метод ValidateUser. Он может содержать любую логику, необходимую для проверки имени пользователя и пароля (которые передаются методу).

[1]: http://How, чтобы: использовать нестандартный поставщик членства для службы аутентификации WCF

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