2009-07-07 6 views

答えて

0

セッションはサーバーに格納されており、ajaxコールを作成してサーバーからセッションの詳細を取得しない限り、セッションはjQueryからアクセスできません。

ViewStateとSessionの両方が開発者のWebアプリケーションでの状態を維持するのに役立つ以外は、お互いに関係がありません。

EDIT:

あなたは、Ajaxを使用してセッションを変更したい場合。 HTTPハンドラSessionHelper.ashxを作成します。このセッションハンドラは、クエリ文字列パラメータとして 'SessionVariableName'と 'SessionVariableValue'を取り、サーバー上のセッション状態を変更できます。このハンドラは$ .ajaxメソッドを使用してjQueryから呼び出すことができます。

このようなハンドラを公開する場合、誰かがハンドラを直接呼び出すことができ、セッション変数を変更できるので、誤って使用することを防ぐ必要があることに注意してください。 [例えば。セッション中にユーザロール/特権を保存すると、ハッカーはこのハンドラでこのロール/特権を変更できます。]

+0

HM ... [OK]を、私はそれをどのように行うのでしょうか? – Jason

3

セッションごとのプロパティをjQueryとサーバ間で渡す必要がある場合は、代わりにクッキーを使用してみてください。

そうしないと、カスタムハンドラ(ashx)ファイルまたはWebMethodなどを作成して、Ajax呼び出しでアクセスできるようにする必要があります。

1

jQueryの


$.get("http://somewhere/page.aspx", 
     {sessionVar: "something"}, 
     function(data) 
     { 
      alert("Session(\"something\") = " + data); 
     } 
); 

page.aspx:なしエラーチェックか何かでだ


Response.Write(Session[Request.QueryString["sessionVar"]]); 

...

+1

良い例(+1)ですが、セキュリティを慎重にする必要があると付け加えます。これによりセッションプロパティが外部から見えるようになりますが、アクセス可能なものを制限したいと思うでしょう。 – Keith

+0

絶対に正しい。私が上に持っているのは、説明のための非常に小さい、貧しい例です。 –

関連する問題