2010-10-04 3 views
1

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

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

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

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

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

ответ

0

Вы должны быть в состоянии: [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 к: Использование Non-умолчанию поставщик членства для WCF службы проверки подлинности

+0

Стива, я думаю, что ваша ссылка получила перепуталось. – Xaisoft

+0

dang it! здесь это: http://msdn.microsoft.com/en-us/library/bb386455.aspx –

Смежные вопросы