我正在玩 SignalR,我似乎无法掌握身份验证来构建公共与安全聊天的演示应用程序。有一个聊天室,我想证明经过身份验证的用户会收到公共消息和经过身份验证的用户消息。身份验证是使用库存 MVC(3) Internet 应用程序完成的AccountController
。
在控制器中获取 Hub 上下文没有意义,因为它没有连接 ID。如何获取连接 ID 以将特定连接添加到“安全聊天”组?它应该在控制器中完成吗?还是我错过了在集线器内执行此操作的方法?
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
var context = GlobalHost.ConnectionManager.GetHubContext<Chat>();
// add to signalr secure group
// but no connection id here