2012-01-25 20 views
0

從aspx頁面成功登錄到html頁面後會話正在傳遞,我希望能夠使用JSON獲取會話對象並修改html元素,任何人都可以發佈有關如何使用JSON的簡單示例嗎?使用JSON管理HTML頁面上的ASP.Net會話?

謝謝。

+0

我想要WebForms。 –

+0

你能否詳細說明你的請求,甚至可以添加你看起來像什麼東西的代碼片段? – linkerro

+0

讓我試着重述一下你的問題。你想獲得所有的用戶會話變量序列化爲客戶端使用JavaScript中提供的JSON? –

回答

1

您需要從客戶端向Web服務方法或頁面方法(在您的頁面中定義的webmethod)進行AJAX調用。

如果您選擇的頁面方法的選擇你的代碼可能是這樣的:

你背後的Page.aspx的

public class CustomSessionObject 
    { 
     public string Name { get; set; } 
    } 

    [WebMethod] 
    public static object GetSessionData() 
    { 
     try 
     { 
      return HttpContext.Current.Session["THE_SESSION_VAR_YOU_NEED"] as CustomSessionObject; 
     } 
     catch (Exception e) 
     { 
      //Log Exception 

      throw; 
     } 
    } 

我不會建議總是回饋所有會話代碼瓦爾。明確說明,只給出你需要的。通過這種方式,如果其他開發人員在稍後的時間添加更多的用戶會話變量,他們將不會被返回。如果你這樣做,這可能是未來的安全漏洞。

使用JQuery進行AJAX調用。

var handleError = function(jqXHR, textStatus, errorThrown) { 
    alert("An error occurred: " + jqXHR.responseText); 
}; 

var handleSuccess = function(data, textStatus, jqXHR) { 
    if (data && data.d) { 
     alert(data.d.Name); 
    } 
}; 

$.ajax({ 
    url: 'Page.aspx/GetSessionData', 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: handleSuccess, 
    error: handleErr 
}); 

也讀了this瞭解更多信息。

0

Session對象通常是服務器端的,使用存儲在客戶端cookie中的會話密鑰進行引用。

此外,JSON是一種數據傳輸格式,所以它並沒有真正做任何事情。也許你的意思是jQuery?

如果您希望能夠在客戶端和服務器上修改它,您需要客戶端Cookie。閱讀本概述:http://msdn.microsoft.com/en-us/library/ie/ms178194.aspx