Files
squad-rain-ops-mini/Hubs/ChatHub.cs

23 lines
671 B
C#

using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;
namespace RainOpsMini.Hubs
{
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
var principal = Context.User;
if (principal == null ||
(!principal.HasClaim("Permission", "chat") &&
!principal.HasClaim("Permission", "all") &&
principal.FindFirst("IsSuperAdmin")?.Value != "true"))
{
throw new HubException("访问被拒绝:权限不足。");
}
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
}