Gestión Usuarios C#
Gestión Usuarios C#
Gestión Usuarios C#
NET
Servicio de Informtica
AUTENTICACIN Y AUTORIZACIN
DEFINICIONES
Autenticacin: Acepta credenciales proporcionadas por el usuario. Valida esas
credenciales.
Autorizacin: Dada una credencial autenticada, determinar los derechos de acceso a
los recursos. Los accesos pueden ser dados o denegados a un usuario en particular o
basado en un rol
AUTENTICACIN
Basado en Windows:
o La solicitud de la pgina pasa por IIS. Si IIS valida exitosamente la
credencial, entonces se devuelve la pgina solicitada.
Descripcin
None
Windows
Forms
Passport
Tema 4 / Pgina 1
Mtodo
Basado en
Windows
Basado en
Formularios
Microsoft
Passport
Ventajas
Usa la infraestructura de
Windows
Control de acceso a
informacin crtica
Desventajas
No apropiado para la
mayora de las aplicac.
Web
Tema 4 / Pgina 2
2.
<configuration>
<system.web>
<authentication mode="Forms"/>
mode="Forms"
<authorization>
<deny
deny users="?" />
</authorization>
</system.web>
</configuration>
Tema 4 / Pgina 3
<authentication mode="Forms">
<forms
name=".ASPXCOOKIEDEMO"
loginUrl="login.aspx"
defaultUrl="default.aspx"
protection="All"
timeout="30"
path="/"
requireSSL="false"
slidingExpiration="true"
enableCrossAppRedirects="false"
cookieless="UseDeviceProfile"
domain="">
</forms>
</authentication>
(La tabla completa est en http://msdn.microsoft.com/es-es/library/1d3t3c61.aspx)
Atributo
Descripcin
Cookieless
cookieless=
"[UseUri |
UseCookies | La opcin de AutoDetect hace que ASP.NET determine dinmicamente
AutoDetect | si el navegador soporta cookies o no.
UseDevicePr
ofile]"
UseUri y UseCookies fuerza el uso de tickets sin y con cookies,
respectivamente.
UseUri modifica la url a algo como:
http://localhost:60194/tema8/%28F%283CIW7kVWVrwCYQBuAG8Abg
BpAG0AbwAAANsh2gLch8sBAdtVvDPgh8sBAAAvAAAA0%29%29/De
fault.aspx
defaultUrl
domain
enableCross
AppRedirect
s
Tema 4 / Pgina 4
name
path
Protection
Mtodo usado para proteger los datos de las cookies. Por defecto es
All que usa validacin + encriptacin.
protection=
"[All|None|
Encryption|V
alidation]"
Si el valor est a true, la Autenticacin por Formularios configura el bit
de seguridad en la cookie del formulario de autenticacin. Los
navegadores conformistas slo devolvern la cookie a ASP .NET a
travs de una conexion SSL.
Si el valor est a true, los Formularios de Autenticacin actualizarn
slidingExpirat
peridicamente el tiempo de vida para los tickets del formuario de
ion
autenticacin. Esto ocurre independientemente de si el ticket est o no
contenido en una cookie, o en los formatos sin cookie en la URL.
Cantidad de tiempo en minutos enteros, despus del cual la cookie
timeout
expira. El valor por defecto es 30.
requireSSL
Tema 4 / Pgina 5
3.
</configuration>
</system.web>
Ahora debemos montar dos pginas aspx: Login y default.aspx.
Login.aspx debera tener un formulario. Pero por sencillez vamos a poner un botn
que al hacer click haga:
protected void Boton_Click(object sender, EventArgs e)
{
FormsAuthentication.RedirectFromLoginPage("anonimo", true);
}
Tema 4 / Pgina 6
</configuration>
</system.web>
Ahora cualquiera se puede pasear por nuestro sitio web.
Para evitarlo contamos un login.aspx con un botn (a reemplazar por un formulario)
protected void Boton_Click(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie("anonimo", true);
Response.Redirect("Default.aspx");
}
Y en las pginas donde slo tengan acceso los autentificados (en este caso
defautl.aspx), debemos poner:
protected void Pre_Init(object sender, EventArgs e)
Tema 4 / Pgina 7
{
if (!User.Identity.IsAuthenticated)
Response.Redirect("Login.aspx");
}
4.
Login:
El control Login es el control de inicio de sesin ms simple y soporta las situaciones
ms comunes; identificarse utilizando un nombre de usuario y una contrasea. El
control incluye los cuadros de texto usuario y contrasea y una casilla de verificacin
para los usuarios que deseen comprometer la seguridad de la contrasea
almacenndola en la mquina. El control expone propiedades a travs de las cuales
puede cambiar el texto y la apariencia del control.
Tambin puede agregar vnculos para administrar el registro o la recuperacin de
contrasea.
El control Login interacta de forma predeterminada con el componente miembro
ASP.NET para la autenticacin.
Usando el login con la clase LDap:
1.- Creamos el control login.
2.- Aadimos la clase claseLDap como referencia.
3.- En eventos controlamos el authenticate
Tema 4 / Pgina 8
LoginView:
Es til para administrar el contenido que muestra para los usuarios autenticados y para
los no autenticados. LoginView muestra el estado del inicio de sesin a travs de
mostrar las plantillas AnonymousTemplate y LoggedlnTemplate. El control muestra
una plantilla diferente dependiendo del estado del usuario.
1.- Arrastro en modo diseo el LoginView.
Tema 4 / Pgina 9
LoginStatus:
Muestra si el usuario ha iniciado sesin o no. A los usuarios que no han iniciado sesin
se les pide que lo hagan, y a los usuarios que han iniciado sesin se les pide que
cierren la sesin.
Recuerdo que por cdigo usamos User.Identity.IsAuthenticated para saber si el
usuario
est
identificado.
Y
para
cerrar
la
sesin
usamos
FormsAuthentication.SignOut()
LoginName:
El control LoginName muestra el nombre de inicio de sesin del usuario.
Por cdigo podemos usar User.Identity.Name
Tema 4 / Pgina 10
5.
EN INTERNET.
Tema 4 / Pgina 11
6.
EJERCICIO.
LOGIN.ASPX
Se pide un control de LoginView que:
1.- cuando sea annimo nos d un control Login. Este ocupar el 100% del espacio
de la plantilla. Tiene un cellspacing de 10 de cellpading de 10. El color del fondo de la
cabecera es #30424A
La identificacin la har con la clase LDAP.
En el cuadro de avisos aparecer lo que nos hemos rellenado de forma incorrecta.
Si al identificarte no lo consigues aparecer el siguiente mensaje: Su usuario /
contrasea no son correctos. Por favor contacte con "Servicio de Informtica"
Tema 4 / Pgina 12
Tema 4 / Pgina 13