SignalR - 如何在集线器

时间:2016-12-05 14:09:08

标签: c# asp.net signalr signalr-hub

我有一个代码,可以在全部写入时更改UserId。

我已经实施了IUserIdProvider:

public class CustomUserIdProvider : IUserIdProvider
{
    public string GetUserId(IRequest request)
    {
        string userId = "userName";
        return userId;
    }
}

并将此提供程序添加到启动类(配置功能):

var idProvider = new CustomUserIdProvider();
GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => idProvider);

我希望所有集线器中的所有用户ID都是" userName"。 我知道(或者可能不是?)为了在其中一个Hub函数中获取UserId,我需要得到以下值:

Context.User.Identity.Name

但实际上,这个值并不包含" userName",但是值不同:

  1. 匿名身份验证时清空
  2. Windows身份验证时的Windows用户名。
  3. 在Hub中,当我查看Clients.User(" userName")时,我发现它是真正的连接ID,所以发生了一些事情(并且调试器在实现的GetUserId处停止功能),但仍然,在生产代码中,我对自定义用户ID一无所知,我想以某种方式获取它...

    更多信息:VS2012,IIS Express。

0 个答案:

没有答案