2010-04-10 11 views

Respuesta

21

Básicamente, cualquier enlace que acepte nombre de usuario/contraseña como credenciales del cliente para seguridad de mensajes se puede configurar para usar el proveedor de membresía de ASP.NET.

Compruebe hacia fuera esta documentación de MSDN en how to use the ASP.NET Membership provider in WCF - tiene que configurar su unión para las credenciales del cliente del tipo "nombre de usuario"

<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> 

y el servicio a utilizar ASP.NET pertenencia para la autenticación de usuario:

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

y, por supuesto, ¡tiene que aplicar este comportamiento de servicio a sus servicios cuando los configure!

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

el nombre de usuario de tipo credencial de cliente es apoyado por basicHttpBinding, wsHttpBinding, netTcpBinding - así que casi todos los sospechosos habituales.

+0

¿es posible usar el nombre de usuario con basicHttpBinding sin usar https? Además, si uso wsHttpBinding, ¿es obligatorio https? –

+2

Si usa el nombre de usuario/pwd, WCF desea un enlace seguro, por lo que debe usar https (ya que no puede usar el cifrado basado en mensajes). Y no: puede usar wsHttpBinding sin https, siempre y cuando pueda cifrar los mensajes, p. al tener un certificado disponible –

+0

Gracias por su ayuda @marc_s –

Cuestiones relacionadas