Tôi đang sử dụng signalr và asp.net MVC3 để tạo ứng dụng trò chuyện mẫu. Dưới đây là những gì trung tâm tín hiệu của tôi trông giống nhưsignalR - nhận tên người dùng
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();
}
}
Vấn đề của tôi là ứng dụng của tôi bị lỗi khi tải trang. trên bước thông qua với trình gỡ lỗi, tôi thấy rằng HttpContext.Current.User.Identity.Name là null mặc dù người dùng đã được xác thực. Làm cách nào để có được tên người dùng trong phương thức Task Join() của tôi?
Những chế độ xác thực nào bạn sử dụng (hình thức, cửa sổ, vv)? Bạn có chắc chắn rằng người dùng được xác thực không? Vì trong một ứng dụng mvc3 intranet mới, cả hai 'HttpContext.Current.User' và' Context.User' không phải là null và chứa người dùng hiện tại. – nemesv
@nemesv - Ứng dụng của tôi sử dụng xác thực biểu mẫu và là ứng dụng internet. Trang sử dụng signalr chỉ có thể được truy cập nếu người dùng được xác thực –
Xin chào @ user1, bạn có thể cung cấp cho tôi bản trình diễn cho nhiều phòng trò chuyện sử dụng signalR hay không. Tôi muốn triển khai máy chủ trò chuyện như chat.stackoverflow.com –