【问题标题】:sessionState.cookieName setting is not working in WCF RESTsessionState.cookieName 设置在 WCF REST 中不起作用
【发布时间】:2011-11-21 21:25:46
【问题描述】:

我想在我的 WCF REST 服务中将 cookie 名称设置为不同的名称。

我已经在 Web.config 中设置了:

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <sessionState timeout="99999" mode="InProc" cookieName="xxx"/>
  </system.web>

但它不起作用:

请求:

POST http://localhost/wcfrest/logon HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
Host: localhost
Content-Length: 40

{"Username":"sdf","Password":"sadfsdaf"}

回复:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 19
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
Set-Cookie: .ASPXAUTH=780210B[...]7627C58; expires=Thu, 22-Sep-2011 11:46:06 GMT; path=/
X-Powered-By: ASP.NET
Date: Wed, 21 Sep 2011 11:46:06 GMT

{"Successful":true}

我还有什么其他的改变吗?

谢谢。

【问题讨论】:

    标签: asp.net session session-cookies wcf-rest


    【解决方案1】:

    因此,您的请求/响应不会显示会话 cookie。响应具有名为 .ASPXAUTH 的身份验证 cookie(请注意,会话和身份验证在 ASP.NET 中具有不同的范围并使用不同的 cookie)。如果您使用表单身份验证,则可以使用 authentication configuration element 中的名称属性更改此 cookie 名称。

    要生成会话 cookie,您必须在会话中写入一些值。生成会话 cookie 后,您可以看到它在每个请求中遍历。顺便说一句,您必须启用ASP.NET compatibility 模式才能参与 WCF 服务中的 ASP.NET 管道(包括会话状态)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      相关资源
      最近更新 更多