Generalidades ¿Qué es Autenticación? Es el mecanismo que permite afirmar que la persona que esta ingresando al sistema es quien dice ser.
¿Cómo Funciona? Se aceptan las credenciales ingresadas por el usuario (usuario – contraseña) y se validan contra una base de datos, el sistema operativo, un servicio web, u otro mecanismo definido según el tipo de autenticación.
Tipos de Autenticación Basada en Windows Basada en Windows e IIS La solicitud de la página pasa por IIS Si IIS valida exitosamente la credencial, entonces se devuelve la página solicitada Basada en Formularios Las solicitudes no autenticadas son redireccionadas a un formulario de login Después de validar la credencial se envía al cliente una cookie de autenticación Basada en Microsoft Passport Servicio de autenticación centralizado Passport es un Web Service
Configurando la autenticación
Autenticación por Formularios La autenticación por formularios se utiliza para validar a los usuarios contra bases de datos relaciones, Servicios Web, etc.
¿Cómo funciona? Si las credenciales son válidas, ASP.NET graba un ticket de autenticación en la cookie que contiene la identidad del usuario.
Si el usuario es anónimo, redirecciona las peticiones a una página predeterminada para validar las credenciales del usuario.
Cliente solicita una página Autorizado Autenticación basada en Formulario NOAutenticado Autenticado Form de Login(Usuario ingresa sus credenciales) Autenticado Cookie de autenticación Autorizado NOAutenticado Acceso Denegado Página Segura solicitada (Gp:) ?
(Gp:) ?
IIS Usuario Clave Gabriel *********** Aceptar 1 2 3 4 6 5 7 Autenticación por Formularios
Controles de Login (1/2) Control Log In
Ejemplo del control
Controles de Login (2/2) Control de Creación de Usuarios (Gp:)
(Gp:) Ejemplo del control
Generalidades Las páginas html de una aplicación web se transmiten por medio del protocolo HTTP, como se mencionó anteriormente. Este protocolo es un protocolo “sin estado”. Así, una vez que el usuario ingreso datos en el navegador, si no se mantiene el estado mediante algún mecanismo, se pierden los datos ingresados. Por este motivo, ASP.Net proporciona mecanismos para mantener el estado de sus variables a través de las distintas peticiones de páginas. Entre estos mecanismos se encuentran: Application State : mecanismo de almacenamiento global accesible desde todas las páginas de la aplicación Web Session State : mecanismo de almacenamiento limitado a la sesión actual del navegador View State :Mantiene valores entre múltiples solicitudes a la misma página
Administración de estados
Contraseña Juan Ingresar ******* Login.aspx Login.aspx Hola Juan Inicio.aspx Ingrese sus datos de inicio de sesión Juan Ingresar ******* Hola Inicio.aspx Nombre Contraseña Sin Adm. De Estados Con Adm. De Estados Olvide quien es Ud! Ingrese sus datos de inicio de sesión Nombre
Tipos de administración de estado
Application State es un mecanismo de almacenamiento global accesible desde todas las páginas de la aplicación Web Seesion State está limitada a la sesión actual del browser Las sesiones ASP.NET se identifican con una cadena de caracteres ASCII y se guarda como una Cookie en el cliente SessionID Variables de Session y Application Administración de estados – Servidor
Cookies para mantener el estado: Temporarias Persistentes Problema: el usuario puede borrarlas o deshabilitarlas Problemas de seguridad Espacio limitado a almacenar no más de 4KB Cookie Administración de estados – Cliente
Global.asax Administra eventos a nivel de aplicación y sesión.
Los eventos referentes a la manutención del estado de aplicaciones web, son: Application_Start Application_End Session_Start Session_End
Estado de la aplicación(1/2) Permite almacenar información a nivel de aplicación, común a todas las sesiones. Esta información se almacena en una colección llamada Application. El acceso a esta información se realiza mediante el objeto intrínseco “Application” Ejemplo en C# protected void Application_Start() { DataSet ds = new DataSet(); try { FileStream fs = new FileStream(Server.MapPath("schemadata.xml"), FileMode.Open,FileAccess.Read); StreamReader reader = new StreamReader(fs); ds.ReadXml(reader); } finally { fs.Close(); } DataView view = new DataView(ds.Tables[0]); Application["Sucursal"] = view; }
Estado de la aplicación(2/2)
Ejemplo en Visual Basic Sub Application_Start(ByVal sender As Object, ByVal e As _ EventArgs) Dim ds As DataSet = New DataSet Try Dim fs As FileStream = New _ FileStream(Server.MapPath("schemadata.xml"), _ FileMode.Open, FileAccess.Read) Dim reader As StreamReader = New StreamReader(fs) ds.ReadXml(reader) Finally fs.Close End Try Dim view As DataView = New DataView(ds.Tables(0)) Application("Sucursal") = view End Sub
Estado de la sesión (1/2) Una sesión es una interacción entre un navegador y un servidor web (comprende varios Requests a lo largo del tiempo) Es posible almacenar información únicamente relevante para una sesión. El acceso a esta información se realiza mediante el objeto intrínseco “Session” Ejemplo C# Protected void Session_Start( object sender, EventArgs e ) { //… try { conn = new SqlConnection( ConfigurationManager.ConnectionStrings[ "ADVENTUREWORKSConnectionString"].ConnectionString); command.Connection = conn; conn.Open(); object result = command.ExecuteScalar(); Session["codigo"] = result; } finally { conn.Close(); } }
Página siguiente |