我有一個由PageBase類調用的安全類(所有頁面都將繼承),它將用戶重定向到主頁或登錄頁面(取決於它們是否已登錄或者不),如果他們嘗試訪問他們未被授權查看的頁面。我想要說的東西一樣,以提醒該用戶,Page_Init上的提示信息
"You are not authorized to view this page, redirecting you"
或類似的東西。我知道你可以從代碼隱藏中調用JavaScript來向用戶顯示警報。在我的PageBase類中(同樣,所有頁面都將繼承),有一個共同的Page_Init(..)方法,當我嘗試從那裏調用我的js警報時,什麼都不會發生。我在代碼中添加了斷點,代碼正在被打中,但用戶沒有收到警報。我認爲這是因爲Page_Init在頁面的生命週期中執行js太早,而這正是導致此問題的原因。
有沒有辦法解決這個問題,而不必爲每個單獨的頁面添加一個函數?此外,這裏有兩種方法我都試過:
System.Web.UI.Page page = HttpContext.Current.CurrentHandler as System.Web.UI.Page;
System.Web.UI.ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('You do not have access to this page. You are being redirected')", true);
和
Response.Write("<script type='text/javascript'>alert('You do not have access to this page. You are being redirected');</script>");
是啊...不完全知道如何字呢......但我想,是問題。有沒有辦法解決這個問題,因爲安全類所做的所有工作都是在'Page_Init'期間完成的?我不反對做一些C#編碼來定製警報,我只需要以某種方式提醒用戶 –
我編輯了我的回覆來解決這個問題。 – David
不完全是我所希望的解決方案,但它工作:)謝謝! –