在我的主页面上,我有一个小方法在“Page_Load”事件中检查用户是否登录,如果没有登录,则将他们重定向到登录页面。但问题是,对于我的某些页面,“Page_Load”事件假定用户已登录,并且这些事件似乎在主页面中的登录检查之前触发,导致错误。
有什么方法可以解决这个问题吗?除了在页面中使用“Page_Load”之外,还有其他事件可以在主页面之后触发吗?
有什么方法可以解决这个问题吗?除了在页面中使用“Page_Load”之外,还有其他事件可以在主页面之后触发吗?
您有一个丰富的页面生命周期,可以使用许多事件。
也许您可以使用Page_Init
在主页中检查用户是否已登录。
或者在其他页面中使用Page_PreRender
。
protected void Page_PreRender(object sender, EventArgs e)
if (this.Page.User.Identity.IsAuthenticated == true) { .. }
。任何情况都不能被假设,这就是你所经历的。你也可以将登录检查移到 Page_Init 中,甚至将其移到运行在每个页面加载时的 HTTP 模块中;在那里,你可以访问各种事件,包括应用程序身份验证/授权。<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
<location path="login.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
HTH.