2010-08-11 191 views
4

是否可以管理Web服務中的會話?如果是的話,如何管理會話呢?它與我們在JSP或PHP中維護的會話類似嗎?客戶端或服務器將存儲關於會話的信息在哪裏?Web服務中的會話管理?

+0

我很確定...你需要重新考慮這種方法。如果您熟悉.net中的Web服務,您將會意識到您「永遠不會」在其中使用「Session」。 – Achilles 2010-08-11 13:36:48

回答

3

是java或.net問題嗎?

在.NET中,你可以通過設置EnableSession參數WebMethod屬性輕鬆使用會話狀態在託管服務器web服務,例如:

[WebMethod(EnableSession = true)] 
public bool Login(string login, string password) 
{ 
    // you can use session here so for example log in user 
    if(login = "administrator" && password = "secret") 
     Session["authorizedUser"] = login; 
} 
+0

@ LukaszW.pl:它與我們在JSP或PHP中維護的會話類似嗎?客戶端或服務器將存儲關於會話的信息在哪裏? – brainless 2010-08-11 13:24:18

+2

會話總是服務器端的東西......它類似於PHP中的會話(我不知道JSP)......通常它是存儲在服務器上的客戶端唯一對象表,您可以從C#web輕鬆訪問承載web服務的應用程序。 – 2010-08-11 13:28:37

+0

由於Web服務是一個普通的Web應用程序,只有一個以HTML以外的格式處理請求和響應,所以使用相同的會話管理機制。 – 2010-08-11 13:37:45

5

在web服務中使用.NET中的Session對象是可能的...但是我會說這是不好的做法。通常來說,web服務不會以這種方式傳遞數據,並且服務中的數據不會在調用之間持續存在。

+1

Session如何在Web服務中工作?任何示例代碼可用? – brainless 2010-08-11 13:17:07

+1

webservices中的'Session'就像任何aspx頁面一樣工作。您可以將對象放入會話表並從那裏檢索它。您也可以使用基於會話的機制,如「FormsAuthentication」等。 – 2010-08-11 13:20:38

0

Here是WS-ReliableMessaging的一篇文章,其中有會話支持,在Java和.net開發中均受支持。