如何进行多重继承?

时间:2014-08-13 02:47:19

标签: c# asp.net asp.net-web-api signalr

我是使用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);
        }
    }

我正在使用自定义令牌授权。

1 个答案:

答案 0 :(得分:0)

在Hub中,您可以通过

获取身份
Context.User.Identity