PageBase クラス (すべてのページが継承する) によって呼び出されるセキュリティ クラスがあります。このクラスは、ユーザーがログインしているかどうかに応じて、ユーザーをホームページまたはログイン ページにリダイレクトします。閲覧を許可されていないページにアクセスします。次のように言って、これをユーザーに警告したいと思います。
"You are not authorized to view this page, redirecting you"
またはそのようなもの。コードビハインドからjavascriptを呼び出して、ユーザーにアラートを表示できることは知っています。
私の PageBase クラス (ここでも、すべてのページが継承されます) には共通の Page_Init(..) メソッドがあり、そこから js アラートを呼び出そうとしても何も起こりません。コードにブレークポイントを設定しましたが、コードはヒットしていますが、ユーザーはアラートを受け取っていません。これは、Page_Init がページのライフサイクルの早い段階で js を実行できないためであり、それがこの問題の原因であると考えています。
個々のページに機能を追加することなく、これを回避する方法はありますか? また、私が試した2つの方法は次のとおりです。
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>");