我看过一篇文章,说如果您需要任何安全保护措施,则很难使用小组,但我想知道这是否仍然适用,或者有人会利用这种情况:
说我有一家公司有多个分部。我想在操作发生时仅将通知发送到特定细分。即使很奇怪,在这种情况下,如果另一个部门看到了该通知,那将是很不安全的做法。
客户端中心没有任何“发送”方法,因此如下所示:
[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();
}
如果一个人知道其他部门的名称,是否有任何方法可以连接到该组?这还是个坏主意吗?
我试图避免保留“已登录”用户的列表,并针对每个更改逐个逐个发送用户更改。