0
在一個Web窗體項目中,我使用MasterPage進行用戶角色和其他頁面從MasterPage繼承。 我嘗試使用此代碼到母版的裝載功能:從MasterPage繼承
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string MyPage = System.IO.Path.GetFileName(Request.Path);
SqlDataReader RolePageDr = BLL.Users.RolesPage(MyPage);
while (RolePageDr.Read())
{
string Rolepage = RolePageDr["Roles"].ToString();
if (Page.User.IsInRole(Rolepage) != true)
{
Response.Redirect("~/MsgPage.aspx");
}
else
Response.Redirect(MyPage);
}
}
}
但問題是,當用戶重定向到其他的頁面(例如:AdminPage),從母版,這繼承了這個管理頁面加載函數再次運行一次。
發生這個問題的原因是,無論何時我們借用任何頁面,並且如果該頁面是從母版頁繼承的,那麼首先我們的母版頁將加載並且IsPostBack將始終爲假。 –
你是否想根據角色類型更改母版頁? –
你有沒有看過使用global.asax事件'Application_AuthenticateRequest'來代替? –