如何在.NET Core中使用IUserIdProvider?

use*_*860 3 c# signalr signalr-hub asp.net-core

本文介绍使用IUserIdProvider接口。它显示了如何使用GlobalHost来使SignalR使用您的用户ID提供程序。但是SignalR for .Net Core没有GlobalHost。什么是替代品?

Alb*_*rtK 5

您需要实施IUserIdProvider

public class MyCustomProvider : IUserIdProvider
{
    public string GetUserId(HubConnectionContext connection)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要将其注册以Startup进行依赖项注入:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR();
    services.AddSingleton<IUserIdProvider, MyCustomProvider>();
}
Run Code Online (Sandbox Code Playgroud)

然后SignalRUserIdProvider在诸如HubEndPoint.OnConnectedAsync()