Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autenticación
Acepta credenciales de un usuario
Valida las credenciales
Autorización
En función de las credenciales de autenticación
suministradas, determina el derecho de acceso a un
recurso
Puede asignarse por nombre de usuario o por rol
¿Cuáles son los métodos de autenticación de ASP.NET?
Autenticación basada en Windows
Depende del sistema operativo Windows y de IIS
El usuario solicita una página Web segura y la solicitud pasa por IIS
Una vez IIS verifica las credenciales, se devuelve la página Web segura
Autenticación basada en formularios
Las solicitudes no autenticadas son redirigidas a un formulario HTML
El usuario proporciona credenciales y envía el formulario HTML
Una vez verificadas las credenciales, se suministra una cookie de
autenticación
Autenticación mediante Microsoft Passport
Servicio de autenticación centralizado que ofrece una única opción de inicio
de sesión
Microsoft Passport es un Servicio Web XML
Comparación de los métodos de autenticación de ASP.NET
Método Ventajas Inconvenientes
Utiliza infraestructura Windows No apropiado para
Autenticación
existente la mayoría de
basada en Controla el acceso a aplicaciones de
Windows información confidencial Internet
<location
<location path="ShoppingCart.aspx">
path="ShoppingCart.aspx">
<system.web>
<system.web>
<Authorization>
<Authorization>
<deny
<deny users="?"/>
users="?"/>
</Authorization>
</Authorization>
</system.web>
</system.web>
</location>
</location>
lblAuthUser.Text
lblAuthUser.Text == User.Identity.Name
User.Identity.Name
lblAuthType.Text
lblAuthType.Text == User.Identity.AuthenticationType
User.Identity.AuthenticationType
lblIsAuth.Text
lblIsAuth.Text == User.Identity.IsAuthenticated
User.Identity.IsAuthenticated
lblAuthUser.Text
lblAuthUser.Text == User.Identity.Name;
User.Identity.Name;
lblAuthType.Text
lblAuthType.Text == User.Identity.AuthenticationType;
User.Identity.AuthenticationType;
lblIsAuth.Text
lblIsAuth.Text == User.Identity.IsAuthenticated;
User.Identity.IsAuthenticated;
Demostración: uso de la autenticación basada en Windows
11 22 Autenticación
IIS ASP.NET Forms
Nombre usuario
Autenticado
66 Alguien 44 Autorizado
Acceso denegado
Contraseña Página de inicio
*********** (los usuarios
introducen sus
No Enviar
Enviar credenciales)
autenticado 33
Autenticado
Cookie de Autorizado
autenticación 77 Página segura
55 solicitada
Cómo habilitar la autenticación basada en formularios
11
Configurar IIS para utilizar autenticación anónima
22 Establecer la autenticación basada en formularios en Web.config
<Authentication
<Authentication mode="Forms"
mode="Forms" >>
<<forms
forms name=".namesuffix"
name=".namesuffix"
loginUrl="login.aspx"
loginUrl="login.aspx" />/>
</Authentication>
</Authentication>
Establecer la autorización
33
Generar un formulario Web
44 Form de inicio de sesión
Crear una página de inicio de sesión
Añadir una referencia a System.Web.Security
La página de inicio de sesión verifica y examina las credenciales de un usuario
private
private void
void cmdLogin_Click(object
cmdLogin_Click(object sender,
sender, EventArgs
EventArgs e)
e)
{{
if
if (login(txtEmail.Text,
(login(txtEmail.Text, txtPassword.Text))
txtPassword.Text))
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text,
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);
false);
}}
Sub
Sub cmdLogin_Click(s
cmdLogin_Click(s As
As Object,
Object, ee As
As eventArgs)
eventArgs)
If
If (login(txtEmail.Text,
(login(txtEmail.Text, txtPassword.Text))
txtPassword.Text))
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text,
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, False)
False)
End If
End If
End
End Sub
Sub
Leer las credenciales del usuario desde una cookie
User.Identity.Name devuelve el valor guardado por
FormsAuthentication.RedirectFromLoginPage
Demostración: uso de la autenticación basada en formularios
Cliente
66 El host devuelve un formulario Web Passport.com
Form y posiblemente una
nueva cookie que puede leer
y escribir
Otros recursos sobre Microsoft Passport
Sitios Web
http://www.passport.com
http://msdn.microsoft.com