我在玩SignalR,我似乎無法掌握身份驗證以構建公共vs安全聊天的演示應用程序。有一個聊天室,我想證明經過身份驗證的用戶將收到公共消息和經過身份驗證的用戶消息。使用股票MVC(3)互聯網應用程序AccountController
完成身份驗證。控制器內的SignalR認證?
在控制器中獲取Hub上下文沒有意義,因爲它沒有連接標識。如何獲取連接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
當您按照正常方式對用戶進行身份驗證時,您可以從集線器內訪問用戶身份。演示中心有一個連接方法,客戶端會調用連接標識符來映射您的商店標識。 (我沒有嘗試過我的自我,但多數民衆贊成我的理解,當看着聊天演示。) –