我有一个由 PageBase 类调用的安全类(所有页面都将从中继承),如果他们尝试,它将将用户重定向到主页或登录页面(取决于他们是否登录)并访问他们无权查看的页面。我想通过说类似的话来提醒用户,
"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>");