Web服务中的会话管理?

4

在Web服务中管理会话是否可行?如果是,如何管理会话?与我们在JSP或PHP中维护的会话类似吗?会话信息存储在客户端还是服务器上?


我非常确定...你需要重新考虑这种方法。如果你熟悉 .net 中的 Web 服务,你就会知道在其中“绝对不会”使用 Session - Achilles
3个回答

5

在.NET的Web服务中可以使用 Session对象,但我认为这是一种不好的做法。通常情况下,Web服务不会以这种方式传递数据,并且服务中的数据在调用之间也不会保留。


1
Web服务中的Session是如何工作的?有任何示例代码可用吗? - brainless
1
Web服务中的“Session”与任何aspx页面上的工作方式相同。您可以将对象放入会话表中,并从那里检索它。此外,您还可以使用基于会话的机制,如“FormsAuthentication”等。 - Łukasz W.

3

这是关于Java还是.NET的问题?

在.NET中,您可以通过设置WebMethod属性中的EnableSession参数,轻松地在WebService主机服务器上使用会话状态,例如:

[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;
}

@LukaszW.pl:这是否类似于我们在JSP或PHP中维护的会话?会话信息将存储在客户端还是服务器上? - brainless
2
Session总是服务器端的事情...它类似于PHP中的session(我不知道JSP)...通常它是存储在服务器上的客户端唯一对象表,你可以轻松地从托管webservice的C# Web应用程序中访问。 - Łukasz W.
由于Web服务是普通的Web应用程序,只是处理除HTML以外的请求和响应,因此使用相同的会话管理机制。 - matt b
你的回答需要做一个小改变,如下所示。[WebMethod(SessionEnabled = true)] - 错误[WebMethod(EnableSession=true)] - 正确 - brainless
哈哈.. 这只是因为我从脑海中写的 ;) - Łukasz W.

0

这里有一篇关于WS-ReliableMessaging的文章,它具有会话支持,并且在Java和.NET开发中都得到了支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接