我是使用asp.net web api的SignlR新手。我想做的是组成一组管理员。
[OurAuthorization]
public class NotificationHub : Hub
{
public void Hello()
{
Clients.All.hello();
}
public override Task OnConnected()
{
//if the user is admin add him to the group.which i can access if i have base controller.
Groups.Add(Context.ConnectionId, "Admins");
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
Groups.Remove(Context.ConnectionId, "Admins");
return base.OnDisconnected(stopCalled);
}
}
问题是我无法在没有基本控制器的情况下访问当前用户状态(管理员或普通用户)。我现在不能从那个控制器那里得到NotificationHub
任何其他关于如何实现它的想法。
她是基地控制者。
public class BaseController : ApiController
{
public OurIdentity CurrentUser
{
get
{
OurIdentity identity = new OurIdentity();
if (Thread.CurrentPrincipal.Identity is OurIdentity)
{
identity = Thread.CurrentPrincipal.Identity as OurIdentity;
}
return identity;
}
}
protected override void Initialize(HttpControllerContext controllerContext)
{
if (Thread.CurrentPrincipal.Identity is OurIdentity)
{
OurIdentity identity = Thread.CurrentPrincipal.Identity as OurIdentity;
}
base.Initialize(controllerContext);
}
}
我正在使用自定义令牌授权。
答案 0 :(得分:0)
在Hub中,您可以通过
获取身份Context.User.Identity