【发布时间】:2012-11-14 14:32:31
【问题描述】:
我正在使用 SignalR,但我似乎无法掌握身份验证来构建公共与安全聊天的演示应用程序。有一个聊天室,我想证明经过身份验证的用户将收到公共消息和经过身份验证的用户消息。使用AccountController 中的股票 MVC(3) Internet 应用程序完成身份验证。
在控制器中获取 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
【问题讨论】:
-
当您像往常一样对用户进行身份验证时。您可以从中心访问用户身份。演示中心有一个连接方法,客户端调用该方法将连接 ID 映射到您的商店身份。 (我自己没有尝试过,但我在查看聊天演示时就是这样理解的。)
标签: asp.net-mvc-3 authentication signalr