我有一个由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
不完全是我所希望的解决方案,但它工作:)谢谢! –