ASP.NET - 从外部应用程序访问会话变量

时间:2011-05-06 19:35:58

标签: c# asp.net web-services session

我正在尝试在ASP.NET中编写一个Web服务,它允许外部应用程序访问会话变量,例如当前登录的用户。

我认为这样做的正确方法是将带有SessionID的cookie传递给Web服务(或SessionID本身),并让Web服务返回Session对象的参数。

但是,经过长时间的搜索后,我找不到只使用SessionID访问Session变量的方法。这是真的?如果是这样,我是否有另一种方法来编写将访问会话变量的服务?

谢谢,

2 个答案:

答案 0 :(得分:1)

您的网络方法是否有属性[WebMethod(EnableSession = true)]

Session Variables and Web Services

此外,您可以进行无Cookie会话。

http://msdn.microsoft.com/en-us/library/aa480509.aspx

答案 1 :(得分:0)

副手,如果您正在使用SQL会话存储,您只需按会话ID查询会话数据库...

select
 s.[SessionItemShort]
,s.[SessionItemLong]
from [ASPStateTempSessions] as s
where s.[SessionId] = @sessionId

iirc,SessionItemShort是一个varbinary,而SessionItemLong是一个图像......如果会话项大于varbinary(7000),它将被存储在SessionItemLong中。