检测客户端连接到WCF服务的顺序

时间:2014-08-08 01:22:40

标签: c# wcf

有没有办法知道哪个客户端是连接到WCF服务的第一个或第二个?

1 个答案:

答案 0 :(得分:0)

您可以在业务逻辑中实现它。 I.E. - 请求客户端调用某些身份验证方法并在执行此操作时计算其索引,并请求将身份验证令传递给您在服务中使用的每个其他方法。在此上下文中,“第一个连接的客户端”表示首先调用身份验证方法的客户端。

我们只计算索引的天真实现:

[ServiceContract]
public interface IService {
  [OperationContract]
  int GetMyIndex();
  [OperationContract]
  void AnyOtherMethod(string foo, int clientIndex);
}

public class Service : IService {
  static int m_Counter;
  static object m_SyncRoot = new object();
  public int GetMyIndex() {
    lock (m_SyncRoot) {
      m_Counter++;
      return m_Counter;
    }
  }

  public void AnyOtherMethod(string foo, int clientIndex) {
    // do something
  }
}