【发布时间】:2014-03-26 01:52:41
【问题描述】:
我在 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
}
}
我能做些什么呢? 谢谢!
【问题讨论】:
-
您无法从 ServiceStack 中访问“用户”?
-
不幸的是,我不知道该怎么做。还有“用户”——这是 Asp.Net(不是 ServiceStack)变量。我想只在 ServiceStack 中授权用户。你怎么看?
标签: c# asp.net servicestack signalr authorize