una - page load c#
¿La página ASP.NET ''Page_Load'' se dispara antes del evento ''Page_Load'' de la página maestra? (3)
En mi página maestra, tengo un pequeño método en el evento de Page_Load
que verifica si un usuario ha iniciado sesión y, si no, lo redirige a la página de inicio de sesión.
El problema es que, en algunas de mis páginas, los eventos de Page_Load
suponen que hay usuarios registrados y estos eventos parecen Page_Load
antes de la verificación de inicio de sesión en la página maestra, lo que provoca errores.
¿Cuáles son algunas maneras de evitar esto? ¿Cualquier evento que pueda usar que no sea Page_Lad en mis páginas, se disparará después de la página maestra?
Si necesita que ocurran cosas en la página MasterPage PageLoad antes de los eventos de la página, use Page_PreRender
protected void Page_PreRender(object sender, EventArgs e)
en la pagina actual
Tienes un rico ciclo de páginas con muchos eventos para usar. Tal vez podría usar Page_Init
para verificar si el usuario ha iniciado sesión en la Página maestra. O use Page_PreRender
en las otras páginas.
if (this.Page.User.Identity.IsAuthenticated == true) { .. }
que comprobar si el usuario ha iniciado sesión para esas funciones, haciendo lo siguiente: if (this.Page.User.Identity.IsAuthenticated == true) { .. }
. Nada puede ser asumido, que es lo que estás experimentando. También puede mover su verificación de inicio de sesión a Page_Init, o incluso moverla a un módulo HTTP que se ejecuta en cada carga de página; allí tiene acceso a una amplia gama de eventos, incluida la autenticación / autorización de la aplicación.
Si está utilizando la autenticación de formularios, puede usar el archivo de configuración para controlar esto, a través del elemento de autorización.
<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
<location path="login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
HTH.