Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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# 信号员安全_C#_Asp.net Mvc_Signalr - Fatal编程技术网

C# 信号员安全

C# 信号员安全,c#,asp.net-mvc,signalr,C#,Asp.net Mvc,Signalr,我是新来的信号员,但我很好奇它有多安全 例如,我创建以下方法向所有用户发送消息,如下所示: public class NotificationHub : Hub { public void Send(string message) { Clients.All.broadcastMessage(message); } } SignalR在js文件(集线器)中生成以下方法: 那么,难道世界上的任何用户都不能在没有我同意的情况下,将其复制并粘贴到他们的控制台,

我是新来的信号员,但我很好奇它有多安全

例如,我创建以下方法向所有用户发送消息,如下所示:

public class NotificationHub : Hub
{
    public void Send(string message)
    {
        Clients.All.broadcastMessage(message);
    }
}
SignalR在js文件(集线器)中生成以下方法:

那么,难道世界上的任何用户都不能在没有我同意的情况下,将其复制并粘贴到他们的控制台,然后向我的所有用户发送他们选择的消息吗

var notifications = $.connection.notificationHub;
notifications.server.send("Your site has been hacked!");

我刚刚尝试了这个方法,效果很好——那么,如何防止我的用户从客户端发送未经授权的消息呢?

这是一个HTTP端点,与其他端点一样。如果要限制对它的访问,则需要对用户进行身份验证并授权其操作。您可以使用标准的web身份验证方法(forms auth、Cookie、Windows auth等)进行身份验证,并且可以使用Signal构造(如您指出的authorize属性)或使用您自己的代码在代码中进行授权


这些都有文档记录:

我希望答案不必太宽泛-我想我可以简单地添加一个
[Authorize(Roles=“Admin”))
以上是我阻止任何老用户访问它的方法…只是想寻求一些建议。我发现这里的信息我对答案是否太广泛感兴趣。Signal确实有身份验证和角色授权,它可以限制访问谁发送什么。我明白了,所以我问题的最佳答案似乎是u使用标准ASP.NET身份验证属性。这样,我可以指定哪些用户可以访问哪些方法。感谢您的建议。如果响应是websocket,则websocket流是否在令牌过期时结束?
var notifications = $.connection.notificationHub;
notifications.server.send("Your site has been hacked!");