Существует ли способ использовать то же имя пользователя и пароль от поставщика членства для сервисной аутентификации WCF? если так, какая привязка делает это поддержки? Я должен извлечь переменную профиля от пользователя, в настоящее время называющего сервис. Спасибо за любую справку.
В принципе, любая привязка, которая принимает имя пользователя/пароль в качестве учетных данных клиента для безопасности сообщения, может быть настроена на использование провайдера членства ASP.NET.
Ознакомьтесь с документами MSDN о том, как использовать ASP.NET Membership provider в WCF - вам нужно настроить привязку на клиентские учетные данные типа "UserName"
<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 Membership для аутентификации пользователей:
<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 - то есть практически всеми обычными подозреваемыми.