有没有办法知道哪个客户端是连接到WCF服务的第一个或第二个?
答案 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
}
}