title: SignalR ApplicationUserManager is disposed while using webSockets transport
body: <p>I've added SignalR to my existing MVC project and tried to use the same ApplicationUserManager from MVC to load user into hub context.</p>
  
  <p>After connection is done, I call some server method like this:</p>
  
  <pre><code>        var alertsHub = $.connection.monitoringHub;
  
          $(function() {
              alertsHub.client.processAlertChange = function (name, alert) {
                  console.log(alert);
              };
  
              //start the connection
              $.connection.hub.start().done(function () {
                  console.log("Connected, transport = " + $.connection.hub.transport.name);
                  alertsHub.server.subscribeToMonitor();
              });
          });
  </code></pre>
  
  <p>In my Hub method there is a call </p>
  
  <pre><code>CurrentUser = ConnectedUsers.GetOrAdd(this.Context.ConnectionId, UserManager.FindByName(this.Context.User.Identity.Name));
  </code></pre>
  
  <p>where UserManager is property just like this</p>
  
  <pre><code>        protected static ConcurrentDictionary&lt;string, ApplicationUser&gt; ConnectedUsers = new ConcurrentDictionary&lt;string, ApplicationUser&gt;();
  
      private ApplicationUserManager _userManager;
      public ApplicationUserManager UserManager
      {
          get
          {
              if (_userManager == null)
              {
                  _userManager = Context.Request.GetHttpContext().GetOwinContext().GetUserManager&lt;ApplicationUserManager&gt;();
              }
              return _userManager;
          }
      }
      protected ApplicationUser CurrentUser { get; set; }
  </code></pre>
  
  <p>The problem is that when webSockets transport is used I'm getting an error 'Cannot access disposed object'</p>
  
  <pre><code>SignalR: webSockets transport connected. Initiating start request.
  SignalR: The start request succeeded. Transitioning to the connected state.
  SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332, keep alive timeout of 20000 and disconnecting timeout of 300000
  Connected to monitoringHub, transport = webSockets
  SignalR: Invoking monitoringhub.SubscribeToMonitor
  SignalR: monitoringhub.SubscribeToMonitor failed to execute. Error: Cannot access a disposed object.
  Object name: 'ApplicationUserManager'.
  </code></pre>
  
  <p>BUT! When I force serverSentEvents transport - there is no error and everything works great. Why? And how it can be fixed...</p>
  
  <p>My Startup.cs</p>
  
  <pre><code>            ConfigureAuth(app);
  
          // Any connection or hub wire up and configuration should go here
          var hubConfiguration = new HubConfiguration();
          hubConfiguration.EnableDetailedErrors = true;
  
          app.MapSignalR("/sr", hubConfiguration);
  
          GlobalHost.HubPipeline.RequireAuthentication();
          GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(120);
          GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(300);
          GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(10);
  </code></pre>