C# 从信号器集线器内的自定义类访问Identity UserManager

C# 从信号器集线器内的自定义类访问Identity UserManager,c#,asp.net,signalr,C#,Asp.net,Signalr,我有一个ChatUser类,我正试图从信号器集线器中初始化该类。此类的属性之一是自定义标识ApplicationUser对象。当我实例化一个ChatUser实例时,我还填充了这个ApplicationUser属性,这样我就可以在我的应用程序中访问有关该用户的信息,如下所示: public ChatUser(int userId) { ApplicationUser u = UserManager.FindById(userId); this.Use

我有一个
ChatUser
类,我正试图从信号器集线器中初始化该类。此类的属性之一是自定义标识
ApplicationUser
对象。当我实例化一个
ChatUser
实例时,我还填充了这个
ApplicationUser
属性,这样我就可以在我的应用程序中访问有关该用户的信息,如下所示:

    public ChatUser(int userId)
    {
        ApplicationUser u = UserManager.FindById(userId);
        this.User = u;
    }
但是,我无法使
UserManager
对象在此类中正确实例化

在SignalR之外(例如,在普通控制器中),我通常会使用以下代码实例化
UserManager

    private ApplicationUserManager _userManager;

    private ApplicationUserManager UserManager
    {
        get
        {
            if (_userManager == null)
            {
                _userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
            }
            if ((_userManager == null) || (_userManager.IsDisposed == true))
            {
                _userManager = new ApplicationUserManager(new CustomUserStore(new ApplicationDbContext()));
            }
            return _userManager;
        }
        set
        {
            _userManager = value;
        }
    }
这在轮毂内工作正常。我试图找到如何使这个
上下文
对象在我的自定义类中可用,但无法确定正确的过程。我尝试了此处给出的从中心外部访问中心的指导:

IHubContext ChatHubContext=GlobalHost.ConnectionManager.GetHubContext();
但是,这不是正确的“上下文”,因为它给出了一个
IHubContext
对象,该对象只具有
客户端
的属性


是否可以访问适当的上下文对象来公开
请求.GetHttpContext…
方法?

如果您在.NET core上,可以使用此
 _userManager = Context.Request.GetHttpContext().GetOwinContext().GetUserManager<ApplicationUserManager>();
 IHubContext ChatHubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();