Signalr Core将用户添加到组OnConnected Security

时间:2018-08-22 03:26:35

标签: signalr signalr-hub

我看过一篇文章,说如果您需要任何安全保护措施,则很难使用小组,但我想知道这是否仍然适用,或者有人会利用这种情况:

说我有一家公司有多个分部。我想在操作发生时仅将通知发送到特定细分。即使很奇怪,在这种情况下,如果另一个部门看到了该通知,那将是很不安全的做法。

客户端中心没有任何“发送”方法,因此如下所示:

[Authorize]
public class NotificationsHub : Hub
{

}

然后我在api上有一个服务类,该服务类使用IHubContext向群组发送通知

public class NotificationService : INotificationService{
    public async Task UpdateScheduleAsync(string subdivision, string message)
    {
         await _hubContext.Clients.Group(subdivision).SendAsync("ReceiveMessage",message);
    }
}

如果我在NotificationsHub中添加了方法,

public override async Task OnConnectedAsync()
{
   //may or may not use the identifier
   var someUserIdentityInfo = Context.UserIdentifier; 

   //would grab the subdivision the authorized user is apart of
   var subdivision = GrabSubdivisonFromIdentity(someUserIdentityInfo);

   //add to the subdivison group
   foreach(var division in subdivison){
     await Groups.AddToGroupAsync(Context.ConnectionId, division);
   }

   await base.OnConnectedAsync();
}

如果一个人知道其他部门的名称,是否有任何方法可以连接到该组?这还是个坏主意吗?

我试图避免保留“已登录”用户的列表,并针对每个更改逐个逐个发送用户更改。

0 个答案:

没有答案