识别wcf中的客户端

识别wcf中的客户端,wcf,Wcf,项目架构 我的wcf公开了11个端点,这是用于身份验证和身份验证的端点之一。返回用户的accountid。此accountid由客户端在每个方法中发送以进行重新编码 需要 我不想把帐户id发送给每一个方法,我只想找到一种方法,如果客户是loggedin,可以自动给我帐户id 限制 1> 我不能使用会员资格 2> 我不能使用wcf的会话模式,因为它会为每个端点创建新会话 3> 无法在客户端使用OutgoinHeader 是否有任何自定义的方法来解决这个问题看起来像是联邦安全的场景,但它会与您的一些

项目架构

我的wcf公开了11个端点,这是用于身份验证和身份验证的端点之一。返回用户的accountid。此accountid由客户端在每个方法中发送以进行重新编码

需要

我不想把帐户id发送给每一个方法,我只想找到一种方法,如果客户是loggedin,可以自动给我帐户id

限制

1> 我不能使用会员资格

2> 我不能使用wcf的会话模式,因为它会为每个端点创建新会话

3> 无法在客户端使用OutgoinHeader


是否有任何自定义的方法来解决这个问题

看起来像是联邦安全的场景,但它会与您的一些需求相冲突

  • 你不需要会员资格
  • 您不需要每次会话的服务
  • 您需要以某种方式传递令牌-如果您无法使用自定义传出SOAP头并在某个中心位置对其进行配置,则必须在消息体中传递令牌,并且必须将其配置为每个服务调用的参数

  • 是的,我知道报头是最好的方法,客户端不想通过报头发送loggedin用户的任何信息,客户端想在哪里发送信息?标题和正文都是同一消息中的文本内容。客户端不希望将信息发送给wcf,一旦用户通过身份验证,客户端希望wcf自动重新确认帐户id这是不可能的。在这种情况下,将所有11个端点移动到一个端点中,并使用每个会话服务,使用
    i启动
    操作进行登录,
    注册
    操作进行注销。除非您使用net.tcp作为传输,否则它仍将以静默方式发送一些会话Id。