Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net检查用户是否登录到信号器_C#_Asp.net_Asp.net Mvc_Signalr_Signalr Hub - Fatal编程技术网

C# .net检查用户是否登录到信号器

C# .net检查用户是否登录到信号器,c#,asp.net,asp.net-mvc,signalr,signalr-hub,C#,Asp.net,Asp.net Mvc,Signalr,Signalr Hub,有没有办法检查用户是否登录到集线器 我知道我可以使用它,但是HttpContext在hub中不可用: HttpContext.Current.User.Identity.IsAuthenticated -问题是,我正在向一群用户发送数据,并假设其中一个客户机处于非活动状态一段时间,并且他/她的会话过期 我想做的是在我的Hub=>Send()方法(从事件中调用)中,检查用户是否仍在登录,如果没有,我将向他/她的浏览器发送消息以重新加载页面。如果您只希望经过身份验证的用户能够连接/发送到Hub,

有没有办法检查用户是否登录到集线器

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

HttpContext.Current.User.Identity.IsAuthenticated 
-问题是,我正在向一群用户发送数据,并假设其中一个客户机处于非活动状态一段时间,并且他/她的会话过期


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

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

您可以使用
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.
        }
    }
}

在hub类中有这样一种方法<代码>上下文.User.Identity.IsAuthenticated。这可能会有所帮助。那么,HttpContext.Current.User.Identity是否适用于中心外的signer?我不能让我的工作。当我使用signalR时,HttpContext.Current.User对我来说是空的。我认为这不会阻止随机客户端连接。然而,这确实说明了如何有选择地限制客户机方法。