1

私は一見簡単な問題を抱えており、適切なソリューションを設計するのに苦労しています。

通常のasp .netログインコントロールがあります。ユーザーがログインしたとき (そして認証に成功したとき) に、次のような JavaScript メッセージ プロンプトを表示したいと考えています。

警告: これは政府のシステムです...など

これを行う方法は 100 万通りありますが、ログイン ユーザー コントロール内に保持したかったのです。私は運がない次の方法で遊んだ:

protected void OnAuthenticate(object sender, AuthenticateEventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true);
}

protected void OnLoggingIn(object sender, LoginCancelEventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 
}

protected void OnLoggedIn(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true);
}

ポストバック ページのライフサイクルが私を台無しにしているようです。

これは別に考えたほうがいいのではないでしょうか?

ログインページ -> (成功) -> 警告メッセージページ -> ユーザーダッシュボードページ

アドバイスをいただければ幸いです。

ありがとう!

-ジョシュ

編集: Page.ClientScript.RegisterClientScriptBlock("...."); も試しました。

4

2 に答える 2

1

マスターページ/ベースページとセッションを使用していますか? このようにして、ログインしていない最初のページに警告が表示されるようにすることができます。

protected void Page_load(object sender, EventArgs e) 
{
   if (Request.IsAuthenticated && !Page.IsPostBack())     
      if (session["warningShown"] == null or session["warningShown"] == false)
      {
         session["warningShown"] = true;
         Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 

      }
   }
}
于 2012-02-06T19:15:18.750 に答える
0

それが助けになるなら、私は昔の古典的なASPでこのようなことをしていました...

私のJavascriptは次の行に沿っていました:

if (confirm('Yes or no'))
  {
    return true;
  }

これは、Response.write ステートメントを使用してページに書き込まれました。ユーザーが [OK] をクリックすると、リダイレクトされます。キャンセルをクリックすると、ページにとどまります。(私がこれを行ってからしばらく経っていることを認めているので、これは正確な構文ではないかもしれません)

これはまさにあなたが探しているものではないかもしれませんが、正しい方向に向かうかもしれません.

于 2012-02-06T19:28:36.500 に答える