troubleshooting Question

Using signalR in MVC 5 ASP.Net application

Avatar of soozh
soozhFlag for Sweden asked on
ASP.NET* ASP .NET MVC 5
2 Comments1 Solution12 ViewsLast Modified:
Hello,

I am trying to implement a chat function in an MVC 5 ASP.Net application using signalR.
The application uses the following after the user has been authenticated.  I have to admit I have inherited this code and don't understand really what is happening.  But it works!

     var claims = new List<Claim>();
                                    claims.Add(new Claim(ClaimTypes.NameIdentifier, profile.Id.ToString()));
                                    claims.Add(new Claim(ClaimTypes.Name, loggedIn.Username));
                                    claims.Add(new Claim(ClaimTypes.Email, loggedIn.EmailAddress));
                                    claims.Add(new Claim(ClaimTypes.Role, "User"));  //TODO Add role
                                    claims.Add(new Claim(type: "LoginId", value: loggedIn.Id.ToString()));


                                    var identity = new ClaimsIdentity(claims, "ApplicationCookie");
                                    var context = Request.GetOwinContext();
                                    var authManager = context.Authentication;


                                    authManager.SignIn(new AuthenticationProperties
                                    { IsPersistent = login.RememberMe }, identity);

I have created a signalR hub in my application and I want to stop the client from connecting until they are authenticated, when the client connects I want to know who she/he is.

So my questions are:
1. How do implement the necessary code to ensure that the connection occurs after authentication?
2. How do I get the user identity in the hub code? I have overridden the onConnected method so i can hold a dictionary of users.  But I need the user identity as well as the connectionId.

Thanks.



Join the community to see this answer!
Join our exclusive community to see this answer & millions of others.
Unlock 1 Answer and 2 Comments.
Join the Community
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 2 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros