我的 ASP.NET 主 Page_Init 事件页面中有代码,用于检查用户是否被授权进入内容页面,如果没有,则将他们重定向到登录页面。就检查本身而言,此代码工作正常。但是,我发现在上述重定向之后内容 Page_Load 事件仍然会触发。这会在假定用户已登录并设置某些变量的页面上引起问题。
这是母版页代码(简化)
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
...
If Access_Level > User_Level_ID Then
Response.Redirect("~/login.aspx", False)
End If
End Sub
上面的测试工作正常,重定向行被执行,但在下面的代码被触发并执行之前没有生效。
这是内容页面代码
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Rec_IDs As New List(Of String)
Rec_IDs = Session("Rec_IDs")
lblCount.Text = String.Format("You have {0} records in your cart", CType(Rec_IDs.Count, String)) 'this gives an error if Session("Rec_IDs") is null
End Sub
我意识到我可以在我的每个内容页面中放置代码来检查用户是否登录/授权,但如果可能的话,我想从一个位置控制它。
难道我做错了什么?我已经阅读了很多页面说母版页是进行检查的地方。
谢谢。:-)