Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
En este tema se muestra cómo seleccionar mediante programación el proveedor de suscripciones al llamar al servicio de autenticación de ASP.NET utilizando Windows Communication Foundation (WCF). Puede usar un proveedor de suscripciones no predeterminado si tiene que autenticar usuarios mediante proveedores de suscripciones diferentes, según la información obtenida en tiempo de ejecución. Para autenticar mediante un proveedor de suscripciones no predeterminado debe crear un controlador de eventos para el evento Authenticating.
WCF se utiliza para que el servicio de autenticación inicie sesión en un usuario desde una aplicación cliente que puede enviar y utilizar un mensaje de SOAP 1.1, por ejemplo una aplicación Java. La aplicación cliente puede autenticar al usuario con las mismas credenciales de usuario que una aplicación web ASP.NET.
Para autenticar mediante un proveedor de suscripciones no predeterminado
Cree y configure el proveedor de suscripciones que desee utilizar.
Para obtener más información, vea Implementar un proveedor de suscripciones y Configurar una aplicación ASP.NET para utilizar la suscripción.
En el archivo Global.asax, cree un controlador de eventos para el evento Authenticating y agregue código que autentique las credenciales de usuario llamando al proveedor de suscripciones personalizado.
En el ejemplo siguiente se muestra un controlador del evento Authenticating que autentica las credenciales mediante los proveedores denominados ContosoSqlProvider, FabrikamSqlProvider o el proveedor de suscripciones predeterminado. Las credenciales de usuario se almacenan en bases de datos diferentes según el tipo de usuario. El controlador de eventos determina qué proveedor se debe utilizar de acuerdo a la dirección de correo electrónico indicada como nombre de usuario.
Sub AuthenticationService_Authenticating _ (ByVal sender As Object, _ ByVal e As System.Web.ApplicationServices.AuthenticatingEventArgs) If (e.Username.IndexOf("@contoso.com") >= 0) Then e.Authenticated = Membership.Providers("ContosoSqlProvider").ValidateUser(e.Username, e.Password) ElseIf (e.Username.IndexOf("@fabrikam.com") >= 0) Then e.Authenticated = Membership.Providers("FabrikamSqlProvider").ValidateUser(e.Username, e.Password) Else e.Authenticated = Membership.Provider.ValidateUser(e.Username, e.Password) End If e.AuthenticationIsComplete = True End Subvoid AuthenticationService_Authenticating(object sender, System.Web.ApplicationServices.AuthenticatingEventArgs e) { if (e.UserName.IndexOf("@contoso.com") >= 0) { e.Authenticated = Membership.Providers["ContosoSqlProvider"].ValidateUser(e.UserName, e.Password); } else if (e.UserName.IndexOf("@fabrikam.com") >= 0) { e.Authenticated = Membership.Providers["FabrikamSqlProvider"].ValidateUser(e.UserName, e.Password); } else { e.Authenticated = Membership.Provider.ValidateUser(e.UserName, e.Password); } e.AuthenticationIsComplete = true; }En el método Application_Start del archivo Global.asax, enlace el controlador de eventos del evento Authenticating.
En el siguiente ejemplo se muestra cómo enlazar un controlador al evento Authenticating.
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) AddHandler System.Web.ApplicationServices.AuthenticationService.Authenticating, _ AddressOf Me.AuthenticationService_Authenticating End Subvoid Application_Start(object sender, EventArgs e) { System.Web.ApplicationServices.AuthenticationService.Authenticating += new EventHandler<System.Web.ApplicationServices.AuthenticatingEventArgs>(AuthenticationService_Authenticating); }Llame al servicio de autenticación desde una aplicación que pueda leer y utilizar un mensaje de SOAP 1.1.
Compilar el código
Debe configurar el servicio de autenticación en un servidor web para que funcionen los ejemplos anteriores. Para obtener más información, vea Cómo: Habilitar el servicio de autenticación de WCF.
Seguridad
Tenga acceso al servicio de autenticación utilizando siempre la Capa de sockets seguros (SSL), mediante el protocolo HTTPS.
Vea también
Conceptos
Información general sobre el servicio de autenticación de Windows Communication Foundation