WCF WebSocketService read cookies



我有一个WCF服务(从WebSocketService继承)托管在IIS。我正在尝试从我在"OnMessage"中处理的请求中获取cookie。

我试着使用:
——WebSocketContext。CookieCollection- HttpContext.Current.Request(当前为NULL)——OperationContext.Current.IncomingMessageProperties

它们都不起作用。我可能在网上漏掉了什么。配置文件或其他东西。我很感激你的帮助。

谢谢

我不完全确定这一点,但启用ASP。净相容性:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel> 

然后检查HttpContext.Current.Request

cookie在HTTP握手中发送,而不是在每条消息中发送。

要从握手中获取信息(不启用aspnetcompatibility),您应该访问WebSocketContext: https://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.websocketcontext?view=netframework-4.8

WebSocketContext将包含与初始握手一起发送的所有信息。

的例子:

var op = OperationContext.Current;
var wsProperties = op.IncomingMessageProperties[WebSocketMessageProperty.Name] as WebSocketMessageProperty;
var wsContext = wsProperties.WebSocketContext;

从那里您可以访问HeadersCookieCollection属性。只要WebSocket是打开的,这些属性将保持不变。

相关内容

  • 没有找到相关文章

最新更新