Sesiones Autentificación

Anuncio
Guía 8. SEGURIDAD BASICA EN ASP.NET
Sesiones
El objeto Session, nos permite crear sesiones de usuarios, que tiene un tiempo de
validez antes de expirar, por default su tiempo es de 20 minutos. El mismo tiene varios
usos y no sólo el de crear sesiones, su uso es típico en aplicaciones con carritos de
compra, en foro para establecer un tiempo mínimo para poder votar o volver a escribir
un mensaje.
Las sesiones en asp.net son automáticas no hay que crearlas y/o iniciarlas por lo tanto
para aplicar seguridad a una pagina solo debemos implementar una autentificación.
Autentificación
Llamamos autentificación a la comprobación de la identidad de una persona o de un
objeto. Lo más común en las aplicaciones web es hacerlo mediante un usuario y una
contraseña, previamente registradas en una base de datos.
Es importante mencionar que la combinación de una sesión con una rutina de
autentificación logra que identifiquemos al usuarios de nuestra aplicación, pero la
sesión solo identifica al computador con el servidor, por tal motivo si deseamos que el
usuario solo tenga una sesión activa deberíamos de hacer una rutina para tal fin.
Podemos usar algunos métodos de Session como por ejemplo:
Session.SessionID
Session.CookieMode
Session.Clear
Session.Abandon
obtiene el identificador único de la sesión.
Obtiene un valor que indica si esta configurada con
cookies
Quita todos los valores y estados de la sesión.
Cancela la sesión actual.
Para que prueben las sesiones y su uso, ocupen los script y base de datos de ejemplo.
VARIABLES DE SESION Y APLICACIÓN
Las variables de sesión solo sirven para controlar datos dentro de la sesión y están
activas y disponibles solamente para dicha sesión, no hay necesidad de inicializarlas,
para crear una variable de nombre “Login” lo declaramos de la siguiente manera:
Session(“Login”) = “valor_a_asignar”
Esta variables estar viva solamente mientras dure la sesión.
Las variables de aplicación sirven para controlar datos dentro de la aplicación y estarán
activos y disponibles durante todo el proceso de laaplicación sin diferenciar inicios o
cierres de sesión y están activos y disponibles para todos los usuarios, para crear una
variables de aplicación por ejemplo que se llame “Mensaje” la declaramos de la
siguiente manera:
Application(“Mensaje”) = “Valor_del_mensaje“
Ver los script de ejemplos.
Configuraciones personalizadas.
GLOBAL.ASAX
Global.asax nos provee una manera de responder a los eventos de la aplicación. Puede
ser utilizarlo para implementar seguridad en la aplicación, conteo de usuarios, entre
otros.
Programación:
El archivo Global.asax hereda de la clase HttpApplication, mantiene un pool de objetos
de tipo HttpApplication y los asigna a la aplicación cuando esta lo necesita. Dentro de
los eventos de Global.asax, podemos encontrar los siguientes:

Application_Init:
Se dispara cuando una aplicación es inicializada o la primera vez que es llamada. Esto
invoca a todas las instancias de objetos de tipo HttpApplication.

Application_Disposed:
Se dispara justo antes de que una aplicación sea destruida. Este método es ideal para
limpiar anteriormente recursos que fueron utilizados.

Application_Error:
Se dispara cuando una excepción no controlada ocurre en la aplicación.

Application_Start:
Se dispara cuando se ha creado la primera instanciade la clase HttpApplication. Esto
permite crear objetos que son accesibles a las todas las instancias de HttpApplication.

Application_End:
Se dispara cuando la última instancia de la clase HttpApplication es destruida. Este
método es solamente lanzado una vez durante la vidade la aplicación.

Application_BeginRequest:
Se dispara cuando una petición de la aplicación es recibida, ocasionalmente es una
petición de URL que los usuarios colocan.

Application_EndRequest:
El útimo evento disparado para una petición de la aplicación.

Application_PreRequestHandlerExecute:
Se dispara cuando se empieza a ejecutar algún evento como una página o un servicio
web.

pplication_PostRequestHandlerExecute:
Se dispara cuando el framework ASP.NET ha terminadode ejecutar un evento.

Application_PreSendRequestHeaders:
Se dispara antes de que el framework envié cabeceras HTTP a un cliente solicitante
(navegador).

Application_PreSendContent:
Se dispara antes de que el framework envié contenido a un cliente solicitante
(navegador).

Application_AcquireRequestState:
Se dispara cuando el framework obtiene el estado actual (Session state) relacionado
con la petición actual.

Application_ReleaseRequestState:
Se dispara cuando el framework de la página ASP.NET completa la ejecución de todos
los manejadores de eventos.

Application_ResolveRequestCache:
Cuando se completa una petición de autorización. Esto permite que los módulos de
cacheo atiendan la petición desde la cache, pasando la ejecución del manejador.

Application_UpdateRequestCache:
Cuando se completa le ejecución del manejador para permitir que los módulos de
cache almacenen las respuestas que serán utilizadas para peticiones subsecuentes.

Application_AuthenticateRequest:
Cuando un módulo de seguridad que ha establecido que la identidad del usuario actual
es válida. En este punto, las credenciales del usuario han sido validadas.

Application_AuthorizeRequest:
Cuando un módulo de seguridad ha verificado que el usuario puede acceder a los
recursos.

Session_Start:
Se dispara cuando un usuario nuevo visita la aplicación web.

Session_End:
Se dispara cuando la sesión del usuario se ha agotado, terminado o haya dejado la
página web
Ejercicios:
1. Para el ejemplo dado, cree un pantalla para cambio de clave, y una para
registro de usuarios.
2. Cree una sitio web, y aplique un sistema de seguridad.
3. Elabore script en que demuestre el uso de variables de sesión y de aplicación.
Descargar