Использование аутентификации провайдера членства ASP.NET в службе WCF - PullRequest
17 голосов
/ 11 апреля 2010

Есть ли способ использовать то же имя пользователя и пароль от поставщика членства для аутентификации службы WCF? если да, то какую привязку он поддерживает? Мне нужно извлечь переменную профиля из пользователя, который в данный момент вызывает сервис. Спасибо за любую помощь.

1 Ответ

22 голосов
/ 11 апреля 2010

По сути, любая привязка, которая принимает имя пользователя / пароль в качестве учетных данных клиента для защиты сообщений, может быть настроена для использования поставщика членства ASP.NET.

Ознакомьтесь с документами MSDN на , как использовать поставщик членства ASP.NET в WCF - вам необходимо настроить привязку для учетных данных клиента типа "Имя пользователя"

<bindings>
  <wsHttpBinding>
  <!-- Set up a binding that uses UserName as the client credential type -->
    <binding name="MembershipBinding">
      <security mode ="Message">
        <message clientCredentialType ="UserName"/>
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

и сервис для использования членства ASP.NET для аутентификации пользователя:

<serviceBehaviors>
  <behavior name="AspNetMembership">
     <serviceCredentials>
        <userNameAuthentication 
             userNamePasswordValidationMode ="MembershipProvider" 
             membershipProviderName ="SqlMembershipProvider"/>
     </serviceCredentials>
  </behavior>
</serviceBehaviors>

и, конечно, вы должны применять это поведение службы к вашим службам при их настройке!

<services>
   <service name="YourService" behaviorConfiguration="AspNetMembership">
   ....
   </service>
</services>

Тип учетных данных клиента UserName поддерживается basicHttpBinding, wsHttpBinding, netTcpBinding - так что почти все обычные подозреваемые.

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