【问题标题】:Is it possible to support HTTP Cookies with WS2007FederationHttpBinding in WCF?是否可以在 WCF 中支持带有 WS2007FederationHttpBinding 的 HTTP Cookie?
【发布时间】:2020-10-02 08:32:36
【问题描述】:

我们需要启用 WCF 客户端,该客户端通过 AWS 的 Application Load Balancer 使用 WS2007FederationHttpBinding 并启用粘性。

Client --> ALB --> Server1, Server2

ALB 每次都附加一个 ALB cookie,以便客户端可以在会话期间始终与同一服务器通信。客户端每个会话执行几次往返,每次它可以接收到一个 ALB cookie,但在发出后续请求时无法将它们发回,就好像它根本不关心 HTTP Cookie。有没有办法使用 WS2007FederationHttpBinding 在 WCF 客户端上启用 HTTP Cookie?

【问题讨论】:

  • 感谢您的帮助!

标签: wcf


【解决方案1】:

我们可以通过控制http头在WCF客户端使用cookies:

using ( new OperationContextScope( client.InnerChannel ) )
{
    HttpRequestMessageProperty request = new HttpRequestMessageProperty();
    request.Headers["Cookie"] = "value";
 
    OperationContext.Current.OutgoingMessageProperties[
        HttpRequestMessageProperty.Name] = request;
 
    client.Test();
}

我们直接与与 Web 服务交换的 HTTP 消息交互,在适当的标头中以字符串形式读取和写入 cookie。

在必须以相同方式管理从客户端应用程序调用的所有 Web 服务的 cookie 的情况下,最好的选择是通过在 WCF 中应用一个非常有用的功能(消息检查器)来选择集中式解决方案。

我们可以在客户端实现IClientMessageInspector接口来处理cookies,更多关于如何在WCF客户端使用cookies,可以参考这个链接:

https://megakemp.com/2009/02/06/managing-shared-cookies-in-wcf/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多