Estoy usando signalr y asp.net MVC3 para construir una aplicación de chat de ejemplo. Así es como se ve mi concentrador de señalizaciónsignalR - getting username
public class MyHub:Hub,IDisconnect
{
public Task Join()
{
string username = HttpContext.Current.User.Identity.Name;
//find group based on username
string group = getGroup(username)
return Groups.Add(Context.ConnectionId, group);
}
public void doStuff()
{
string group = getGroup();
Clients[group].doStuffOnBrowser();
}
}
Mi problema es que mi aplicación se cuelga cuando se carga la página. al avanzar con el depurador, descubrí que HttpContext.Current.User.Identity.Name es nulo aunque el usuario ya haya sido autenticado. ¿Cómo puedo obtener el nombre de usuario en mi método Task Join()?
Qué modo de autenticación usa usted (formas, ventanas, etc.)? ¿Estás seguro de que el usuario está autenticado? Porque en una nueva aplicación intranet mvc3, tanto 'HttpContext.Current.User' como' Context.User' no son nulos y contienen el usuario actual. – nemesv
@nemesv - Mi aplicación usa autenticación de formularios y es una aplicación de Internet. Solo se puede acceder a la página que usa el señalizador si el usuario está autenticado. –
Hola @ usuario1, ¿me puede dar una demostración de varias salas de chat usando signalR? Quiero implementar el servidor de chat como chat.stackoverflow.com –