2

有没有办法检查用户是否在集线器中登录?

我知道我可以使用它,但是 HttpContext 在集线器中不可用:

HttpContext.Current.User.Identity.IsAuthenticated 

-问题是我正在向一群用户发送数据,并假设其中一个客户端有一段时间不活动并且他/她的会话到期。

我想做的是在我的 Hub => Send() 方法(从事件中调用)中,检查用户是否仍然登录,如果没有,我会向他/她的浏览器发送一条消息以重新加载页面.

4

2 回答 2

2

如果您只希望经过身份验证的用户能够连接/发送到集线器,则可以在集线器上使用 Authorize 属性。如果您想获取当前用户,那么您只需要访问 Context.User (它是集线器上可用的属性)。

于 2013-04-19T08:29:13.583 回答
1

你可以检查使用Context.User.Identity.IsAuthenticated

public class Chat : Hub
{
    public void send(string message)
    {
        Clients.addMessage(message);
    }

    public void securesend(string message)
    {
        if (this.Context.User.Identity.IsAuthenticated)
        {
            // secure send.
        }
    }
}

参考

于 2013-04-19T08:50:28.003 回答