gpt4 book ai didi

javascript - 如何在运行时创建 SignalR 组

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:00 24 4
gpt4 key购买 nike

我开始创建一个应用程序,我将使用 SignalR 使其实时运行。该应用程序要做的事情之一是只允许与某些已连接的客户端(仅属于某个组的客户端)进行通信。

正如我在一些示例中看到的那样,我应该让客户端向服务器发送一个组名称,然后将用户连接 ID 添加到一个组中,然后我就只能向其中的用户发送数据与连接的客户端相同的组。

所以我的问题是,想象一下,例如一个学校聊天应用程序,我只希望一个类(class)的法律学生能够访问该类(class)的聊天组,因此我想在加入组中传递的 GroupName 应该不会被更改,并且我希望它不会显示给查看页面源代码的某些用户,我将如何做类似的事情?

我想到在渲染 Razor 页面时,我会获取有关用户及其所属组的一些信息,并创建一个加密 key ,该 key 将在服务器上解密以将用户添加到正确的组,这会起作用吗?但问题是加密 key 对于每个连接的用户来说都是相同的,因为输入总是相同的,对吗?每个连接不会有不同的 key ,因此有些人可以获得 key 并解密它......

所以我想要类似 BCrypt 哈希的东西,它可以为相同的输入生成不同的输出,但我希望能够反转服务器上的 key 以将用户添加到正确的组中。

知道我该怎么做这样的事情吗?

最佳答案

来自您的评论:

I scan a qrcode, and so I have access to a "room"

假设 QR 码具有隐式房间 ID,当用户/客户端连接到服务器时,您可以将连接 ID 或用户名映射到特定房间 ID 或信号组名称。

该映射可以是服务器上的静态ConcurrentDictionary。但你正在谈论编码的东西。在我看来,安全很重要。在这种情况下,任何有权访问二维码的人都可以进入房间,这根本不安全除非您在用户连接后禁用二维码访问。

如果您确实需要保护房间/组访问的安全,则应该对每个用户进行身份验证并保留。然后服务器准确地知道谁正在连接并能够自动分配房间(signalR 组)。

关于javascript - 如何在运行时创建 SignalR 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com