如何向未经身份验证的/公共用户发送signalr消息?

我想向客户端发送signalr消息,除了经过身份验证的消息 . 我可以这样做吗?

或者,如果在信号器消息到来时有一种方法可以理解用户是否在客户端进行了身份验证,那么它也可以解决我的问题 . 但我不能使用ajax调用 .

回答(2)

2 years ago

您将不得不自己解决,迭代所有用户,检查哪些用户已经过身份验证,并发送特定于该客户端ID的消息(Ids,因为一个用户可以打开几个窗口) .

使用我的SignalR.EventAggregator库可以非常优雅地解决这个问题,这里有一篇关于如何解决它的相关博客文章 .

http://andersmalmgren.com/2014/06/12/client-server-event-aggregation-with-role-authorization/

2 years ago

你可以使用SignalR groups . 未经身份验证的用户连接时,将其添加到Unauthenticated组 . 进行身份验证时,将其从Unauthenticated中删除并将其添加到Authenticated . 当您想要向其中一个组发送消息时,您只需要一个简单的:

Clients.Group("authenticated").MyCoolMessage(message);