ASP.NET page 'Page_Load' firing before Master Page
本文关键字:Page before Master firing Load NET ASP page | 更新日期: 2023-09-27 17:49:18
在我的主页上,我在Page_Load
事件中有一个小方法,检查用户是否登录,并将其重定向到登录页面,如果没有。
问题是,对于我的一些页面,Page_Load
事件假定登录的用户已经登录,并且这些事件似乎在母版页的登录检查之前触发,从而导致错误。
有什么方法可以解决这个问题?除了Page_Load之外,我可以在我的页面中使用任何事件,这会在母版页之后触发 ?
你有一个丰富的Page Cycle,有很多事件可以使用。也许您可以使用Page_Init
来检查用户是否已登录到母版页。或者在其他页面使用Page_PreRender
如果您需要在页面事件之前在MasterPage Page_Load中发生的事情,请使用Page_PreRender
protected void Page_PreRender(object sender, EventArgs e)
您将必须检查用户是否登录了这些功能,执行:if (this.Page.User.Identity.IsAuthenticated == true) { .. }
。没有什么是可以假设的,这就是你正在经历的。你也可以移动你的登录检查到Page_Init,或者甚至移动到HTTP模块,运行在每个页面加载;在这里,您可以访问各种事件,包括应用程序身份验证/授权。
如果您正在使用表单身份验证,您可以使用配置文件来驱动它,通过authorization元素。
<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
<location path="login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
HTH .