在 Azure SignalR 中配置声明映射到 hubContext.Clients.User

Configure Claims mapping to hubContext.Clients.User in Azure SignalR

我正在尝试像这样使用 Azure SignalR 向特定用户发送消息

await this.hubContext.Clients.User(UserId).SendAsync("NotifyUser", "message");

根据https://docs.microsoft.com/en-us/aspnet/core/signalr/groups?view=aspnetcore-3.0 默认情况下,Signalr 使用 ClaimTypes.NameIdentifier 来识别用户。

我可以更改此默认设置以改为使用 ClaimTypes.EmailClaim 吗?这是可配置的吗?

对于 .NetCore 应用程序。这种方法有效

public class CustomUserIdentityProvider : IUserIdProvider
        {
        public string GetUserId(HubConnectionContext connection)
        {
            return connection.User.Claims.FirstOrDefault(x => x.Type == Constants.EmailClaim)?.Value;
        }
    }