Question

I wonder if there is any way to map a ConnectionId to the user without using IPrincipal.Identity.Name. I am already using a custom class "IUserIdProvider" to generate a userId

public class CustomUserIdProvider : IUserIdProvider
{
     public string GetUserId(IRequest request)
    {
        // your logic to fetch a user identifier goes here.
        // for example:

        ////////////////////////////////////////////////////////////////////////
        //**I do not want to use the code below to find the User in my database**
        var userId = MyCustomUserClass.FindUserId(request.User.Identity.Name);
        /////////////////////////////////////////////////////////////////////////

        return userId.ToString();
    }
}

This is all because I'm not using ASP.NET authentication method. The real need is to find a way to pass the user ID to make the association with ConnectionId of time.

I need a way to give (or receive) the identifier of the data from my database User (user_id) in this method. Or some other way (logic) to associate the user with ConnectionId.

Thanks in advanced!

Était-ce utile?

La solution

You can pass parameters about the connected user in the query string from the client to the server like this :

On the client side :

$.connection.hub.qs = "myUser=user";

On the server side :

var myUser= Context.QueryString["myUser"];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top