0

私のJava Webアプリケーションでは、ユーザーがログインすると、次のようにユーザー名とその他の詳細をセッションに保存します。

session.setAttribute("userName",username);

UIにExtJs4を使用しています。extJsでセッション変数を取得するには?

ありがとう

4

3 に答える 3

0

javascriptのみを使用してサーバーWebコンテナからセッション変数を取得することはできません。

私は同じことをします(javaのセッション変数としてuserIdを保存します)。私はExt.Requestそれを取得するためにJavaサーブレットに対してAjaxリクエストを実行するために使用します(Webアプリケーションが使用できない機能を有効または無効にするためのアクセス許可設定などのユーザーに関する他のデータと一緒に)。

編集:

2番目のshaの答えも、認証情報をクライアントに返す唯一の理由は、外観上の理由です。そのため、ユーザーは、サーバー側の認証によって拒否されるjavascriptの機能を使用できないと考えています。彼がuserIdまたはアクセス許可をスプーフィングしてこの機能を使おうとすると、サーバー側での実際の認証によって彼は停止します。

于 2012-05-05T15:37:19.187 に答える
0

私は@Geronimoのアプローチを2番目にすることができます。ユーザーを認証するときに、ユーザー ID や権限を取得する必要があります。でも...

簡単にスプーフィングできないため、JS コードのどこかに保存したユーザー名/権限だけに頼ることはできません。アクセスのレベルごとに異なる情報をユーザーに提示する場合でも、サーバー側でユーザー ID の検証を行う必要があります。

于 2012-05-05T15:41:51.187 に答える
0

ずいぶん前から質問されていたことは理解していますが、閲覧数が多く、明確な回答がないにもかかわらず、この回答を提供することにしました。

/index.php?PHPSESSID=9ebca8bd62c830d3e79272b4f585ff8f のようにセッション変数が登録されているとします。

この場合、JS オブジェクトの「場所」から変数 PHPSESSID を取得し、Ext.Object.fromQueryString() で変換できます。

そう:

console.log( Ext.Object.fromQueryString( location.search ) );

必要に応じて PHPSESSID 変数を準備します。

于 2016-12-09T18:00:44.443 に答える