我是SignalR的新手。我正在学习使用SignalR,到目前为止看起来真的很棒。
我只是试图限制与授权(登录)用户的连接,因为我已经在使用ASP.NET Identity Framework。
我的集线器上有[Authorize]
属性,但是当未经授权的用户尝试连接尝试时,这并不会阻止我的OnConnected()
方法被调用。
我试图实现PersistentConnection
并覆盖AuthorizeRequest方法,我认为这可能会解决它:
namespace Common.Connections
{
/// <summary>
/// Authorizes requests for persistent connections in SignalR
/// </summary>
public class AuthenticatedConnection : PersistentConnection
{
protected override bool AuthorizeRequest(IRequest request)
{
return request.User.Identity.IsAuthenticated;
}
}
}
也许这不应该停止被调用的方法。
我想我可以轻松地在OnConnected()
方法中手动检查授权,但我不确定最佳方法是什么。
是否应该为非授权连接尝试调用OnConnected()
方法?