No se puede identificar el contexto del usuario en el centro SignalR decorado con el atributo "Autorizar"

Servidor

Hub SignalR dentro de MVC 5 WebApi 2, Seguridad: token de portador

Cliente

Clase C # que utiliza HttpWebRequest para recuperar el token de portador del controlador WebApi / punto final de token

Usé el patrón descritoaquí yaquí para entregar el token portador a mi subclase AuthorizeAttribute.

Cuando el código dentro del método AuthorizeHubConnection ejecuta el ticket entregado por la llamada a "secureDataFormat.Unprotect (token)" siempre es nulo. He confirmado que el token es idéntico en ambos extremos de la comunicación.

Aquí está el método de anulación:

public override bool AuthorizeHubConnection(AspNet.SignalR.Hubs.HubDescriptor hubDescriptor, IRequest request)
{
     var dataProtectionProvider = new DpapiDataProtectionProvider();

     var secureDataFormat = new TicketDataFormat(dataProtectionProvider.Create());
     var token = request.QueryString.Get("Bearer");
     var ticket = secureDataFormat.Unprotect(token);

     if (ticket != null && ticket.Identity != null && ticket.Identity.IsAuthenticated)
     {
       // set the authenticated user principal into environment so that it can be used in the future
       request.Environment["server.User"] = new ClaimsPrincipal(ticket.Identity);
       return true;
      }

      return false;
 }

Cuando ejecuto el concentrador sin el atributo autorizar y establezco un punto de interrupción dentro de la anulación "OnConnected", la propiedad Context.User también es nula.

Cualquier ayuda sería muy apreciada.

Rico

Respuestas a la pregunta(2)

Su respuesta a la pregunta