У меня есть класс безопасности, который вызывается классом 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>");