我正在将我的 Web 服务从 .ASMX 切换到 .SVC,但是其中一些依赖于 HTTP 请求中传入的 cookie 值。
对于 WCF Web 服务,HttpContext.Current为空。您可以通过设置aspNetCompatibilityEnabled来更改此设置true,但是此设置与我也想使用的 IIS7 上的集成管道模式不兼容。
WCF 是否实现了一些很酷的现代访问 cookie 的新方式?
我正在将我的 Web 服务从 .ASMX 切换到 .SVC,但是其中一些依赖于 HTTP 请求中传入的 cookie 值。
对于 WCF Web 服务,HttpContext.Current为空。您可以通过设置aspNetCompatibilityEnabled来更改此设置true,但是此设置与我也想使用的 IIS7 上的集成管道模式不兼容。
WCF 是否实现了一些很酷的现代访问 cookie 的新方式?
WCF 是否实现了一些很酷的现代访问 cookie 的新方式?
WCF 确实有一种访问 cookie 的方法,但我不知道我是否将其称为“酷新现代”。本质上,在您的服务操作中,您可以访问该WebOperationContext.Current.IncomingRequest.Headers[HttpRequestHeader.Cookie]属性,这将为您提供Cookie客户端发送的标头的值 - 作为字符串。那时,您可以随意解析它。
除了正确答案之外,您还需要确保将绑定的 allowCookies 属性设置为 false。
如果设置为 true,WCF 将接管 cookie 管理,并在 cookie 到达您的代码之前将其从标头中删除。见MSDN 论坛
(抱歉,还不能评论。)