2012-05-05 82 views
0

在我的Java Web應用程序,當用戶被登錄,我存儲的用戶名和會話等細節如下,ExtJS的:如何獲得Session變量

session.setAttribute("userName",username); 

我使用ExtJs4的UI。 如何獲取extJs中的會話變量

感謝

回答

0

你不能只得到使用JavaScript關閉服務器Web容器會話變量。

我做同樣的事情(將userId存儲爲java中的會話變量)。我使用Ext.Request對java servlet執行Ajax請求(以及有關用戶的其他數據,例如webapp的權限設置,以啓用或禁用他們將無法使用的功能)。

編輯:

我第二莎的回答也是,我通過了認證信息返回給客戶端的唯一原因是出於美容的原因 - 讓用戶不認爲他能在JavaScript中使用的功能,將被我的服務器端身份驗證拒絕。如果他欺騙userId或權限並嘗試使用該功能,那麼服務器端的真實身份驗證將阻止他。

0

我可以再次@Geronimo方法。您需要在驗證用戶身份時獲取用戶標識和/或權限。然而...

你不能僅僅依賴於你存儲在你的JS代碼中的用戶名/權限,因爲它不容易被欺騙。如果您向用戶提供一些可能針對不同訪問級別的信息,您仍然需要對用戶身份進行服務器端驗證。

0

據我所知,這個問題已經被問了很久以前,但儘管有大量的意見和缺乏平原的答案,我決定提供這樣的回答:

假設會話變量註冊像/index.php?PHPSESSID=9ebca8bd62c830d3e79272b4f585ff8f

在這種情況下,您可以打通JS對象 「位置」 變量PHPSESSID並通過Ext.Object.fromQueryString()

所以改造它:

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

會根據您的需要準備PHPSESSID變量。