我在 ServiceStack 上有一些服务,并在这个项目中使用 SignalR。
现在,我想保护集线器连接(仅对经过身份验证的用户访问),但我使用 ServiceStack 框架身份验证..(不是 asp.net 身份验证)和 ServiceStack 的会话(在此会话和身份验证标志中写入 AuthUserId)。
因此,当用户尝试连接到集线器时——集线器必须检查身份验证...
(是的,我可以从 Hub 请求 Cookie(例如方法 OnConnected),但 SignalR 在 Authorize Attribute 中检查身份验证 - 我必须在此类中进行(而不是在 hub 中)
(http://www.asp.net/signalr/overview/signalr-20/security/hub-authorization)
所以,我创建类
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
public class AuthorizeMyAttribute : AuthorizeAttribute
{
protected override bool UserAuthorized(System.Security.Principal.IPrincipal user)
{
//... how can i request Cookies? / or may be can access for ServiceStack session...
// and return true or false
}
}
我能为它做些什么?谢谢!