Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 信号器2.2.0';Context.ConnectionId'。Net客户端无法手动设置_C#_Signalr - Fatal编程技术网

C# 信号器2.2.0';Context.ConnectionId'。Net客户端无法手动设置

C# 信号器2.2.0';Context.ConnectionId'。Net客户端无法手动设置,c#,signalr,C#,Signalr,当我这样做时: Connection = new HubConnection(uri); Connection.ConnectionId = "89668c32-c654-40a2-96c3-21a888f31c9f"; Connection.Start(new LongPollingTransport()) 第二行什么也不做,我的中心每次都会看到不同的Id。有什么想法吗?连接ID由服务器分配和跟踪。客户端在连接协商期间接收连接id。除了连接协商期间的连接id之外,客户端还接收在服务器上计算的

当我这样做时:

Connection = new HubConnection(uri);
Connection.ConnectionId = "89668c32-c654-40a2-96c3-21a888f31c9f";
Connection.Start(new LongPollingTransport())

第二行什么也不做,我的中心每次都会看到不同的Id。有什么想法吗?

连接ID由服务器分配和跟踪。客户端在连接协商期间接收连接id。除了连接协商期间的连接id之外,客户端还接收在服务器上计算的连接令牌(您可以在中找到有关连接协商和信令协议的更多详细信息)。使用用户名和连接id计算连接令牌,然后将其加密。客户端必须在每个请求中发送连接令牌。如果客户端不发送连接令牌,或者客户端发送的连接令牌与加密数据不匹配,则连接将被拒绝(更多关于连接令牌的信息)。因此,即使您可能通过重用连接Id/连接令牌在您的环境中对此进行攻击,服务器知道在客户端上设置连接Id的情况也不受支持,而且实际上ConnectionId属性甚至不应该具有setter(事实上,属性只有getter).

我无法复制此问题。我每次都看到set ConnectionId。您能提供一个更完整的示例吗?您是否使用LongPollingTransport()?这里的场景是什么?当客户端连接时,连接id由服务器分配,因此您如何知道在客户端上将其设置为什么?我需要具有持久id,以便在客户端断开连接后维护我的组当您启动新连接时,服务器将创建一个新的连接id。如果您使用不同的连接id发送消息,服务器将应/将拒绝该请求,因为在客户端断开连接后,它将无法识别客户端id。除此之外,您还需要发送由服务器创建的连接令牌。如果不发送有效的连接令牌,请求将失败。信号器协议描述:-它包含一个链接,指向一篇解释连接令牌如何工作的文章