通过使用jQuery解析sessionID从WCF服务访问会话变量

use*_*010 4 asp.net session wcf jquery

是否可以使用SessionID从WCF服务访问Asp.net会话变量.

我的服务是从jQuery调用的,我的想法是使用jQuery将sessionID解析为服务,然后设置所需的变量,但我找不到这样做的方法.

这是我的jQuery调用

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: baseURL,
    data: JSON.stringify(data),
    dataType: "json",
    success: function (data) {
Run Code Online (Sandbox Code Playgroud)

有谁知道它是否可能或建议另一种方式设置会话相关变量?

Dre*_*rsh 5

来自浏览器的jQuery请求已经包含会话cookie,因此如果您在ASP.NET兼容模式下运行WCF服务,它已经可以直接访问当前HttpContext,这意味着您可以从那里访问会话状态.以下是如何在WCF服务上启用此集成的方法:

首先,将以下属性添加到服务类:

[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
Run Code Online (Sandbox Code Playgroud)

接下来,将以下内容添加到您的服务.config:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
    <!-- whatever else you already have -->
</system.serviceModel>`
Run Code Online (Sandbox Code Playgroud)

执行此操作后,您可以访问当前HttpContext以获取会话状态,如下所示:

public void MyServiceOperation()
{
    string myStoredValue = HttpContext.Current.Session["MyStoredValue"];

    // whatever
}
Run Code Online (Sandbox Code Playgroud)