SEGURIDAD BASICA EN ASP.NET 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 la aplicació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. WEB.CONFIG Web.config es el archivo principal de opciones de configuración para una aplicación web en ASP.NET. El archivo es un documento XML que define información de configuración concerniente a la aplicación web. El archivo web.config contiene información que controla la carga de módulos, configuraciones de seguridad, configuraciones del estado de la sesión, opciones de compilación y el lenguaje de la aplicación. Los archivos web.config pueden contener también objetos específicos tales como cadenas de conexión a la base de datos. Control de seguridad. Conexiones a bases de datos. Estado de las sesiones. Control de errores. Configuraciones personalizadas. Al igual que el global.asax debe ser colocado en la raíz de la aplicación. GLOBAL.ASAX Global.asax nos provee una manera de responder a los eventos de la aplicación. Puede utilizarlo para implementar seguridad en la aplicación, conteo de usuarios, entre otros. Descripción: El archivo Global.asax está en el directorio raíz de la aplicación. Es un archivo opcional. Podemos incluyo borrarlo si no lo ocupamos. Lo caracteriza la extensión .asax Este archivo está configurado tanto que cualquier petición HTTP via URL es rechazado automaticamente, los usuarios no pueden descargar ni ver sus contenidos. 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 instancia de 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 vida de 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. Application_PostRequestHandlerExecute: Se dispara cuando el framework ASP.NET ha terminado de 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 Ejercicio: 1. Crea un sistema de afiliación a un sitio web, creando los script de inicio de sesión, cierre, registro, y un menú general según los niveles. 2. Incorporar al sitio anterior el mantenimiento a una tabla que el administrador tengo opción de realizar cualquier operación, el supervisor solo pueda agregar y editar, y un usuario general solo pueda ver.