Por ke no manejas variables de sesion en el page load??
yo hago algo mas o menos asi:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Response.Buffer = True
If Session("aut") <> True Then
Response.Write("<title>Acceso denegado</title>")
Response.Write("<img src=http://dxd0002.cfemex.com/web/sub/trab/arch/img/ierror.gif> <strong>No está autorizado a ver esta página</strong><br><br>")
Response.Write("Puede que no tenga permiso para ver este directorio o página con<br> las credenciales proporcionadas.")
Response.Write("<br> <hr width='40%' align='left'><br>")
Response.Write("Si cree que debería poder ver esta página o directorio, intente<br> ponerse en contacto con el administrador del sitio Web<br> acerca de sus permisos.")
Response.Write("<br>O intente identificarse desde <a href='http://dxd0002.cfemex.com/tic/index.aspx' target='_parent'>AQUI</a>")
Response.Write("<br><br>HTTP Error 401 - Prohibido<br> Internet Explorer")
Response.End()
End If
al entrar verifico que la variable "aut" sea = True, si no lo es muestro ese error, y se tienen ke loggear de nuevo si la secion se cerro