相关疑难解决方法(0)

SignalR - 使用(IUserIdProvider)*NEW 2.0.0*向特定用户发送消息

在最新版本的Asp.Net SignalR中,添加了一种使用"IUserIdProvider"接口向特定用户发送消息的新方法.

public interface IUserIdProvider
{
   string GetUserId(IRequest request);
}

public class MyHub : Hub
{
   public void Send(string userId, string message)
   {
      Clients.User(userId).send(message);
   }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:我如何知道我向谁发送信息?这种新方法的解释非常肤浅.SignalR 2.0.0的声明草案带有这个bug并且没有编译.有没有人实现过这个功能?

更多信息:http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#IUserIdProvider

拥抱.

asp.net asp.net-mvc real-time signalr

91
推荐指数
4
解决办法
9万
查看次数

如何基于HTTP头创建自定义身份验证机制?

我将旧版本的问题留在底部.

我想为SignalR客户端实现自定义身份验证.在我的例子中,这是Java客户端(Android).不是网络浏览器.没有表单身份验证,没有Windows身份验证.这些是使用java库的普通vanilla客户端.

所以,假设连接到HUB的客户端传递自定义标头.我需要以某种方式根据此标头验证用户.这里的文档提到它是可能的,但没有提供有关如何实现它的任何细节.

这是Android方面的代码:

hubConnection = new HubConnection("http://192.168.1.116/dbg", "", true, new NullLogger());
        hubConnection.getHeaders().put("SRUserId", userId);
        hubConnection.getHeaders().put("Authorization", userId);

        final HubProxy hubProxy = hubConnection.createHubProxy("SignalRHub");
        hubProxy.subscribe(this);


        // Work with long polling connections only. Don't deal with server sockets and we
        // don't have WebSockets installed
        SignalRFuture<Void> awaitConnection = hubConnection.start(new LongPollingTransport(new NullLogger()));
        try
        {
            awaitConnection.get();

            Log.d(LOG_TAG, "------ CONNECTED to SignalR -- " + hubConnection.getConnectionId());
        }
        catch (Exception e)
        {
            LogData.e(LOG_TAG, e, LogData.Priority.High);
        }
Run Code Online (Sandbox Code Playgroud)

PS下面的原始问题是我"简化"问题的愿望.因为我可以在OnConnected回调中访问标题.我认为有简单的方法可以放下连接...


使用Signal R和自定义身份验证机制.我只是检查连接客户端是否有连接请求传入的某些标头.

问题是 - 如何拒绝或不连接未通过支票的用户?这里的文档并没有真正解释这种情况.提到使用证书/标题 …

.net c# asp.net signalr

11
推荐指数
2
解决办法
5532
查看次数

标签 统计

asp.net ×2

signalr ×2

.net ×1

asp.net-mvc ×1

c# ×1

real-time ×1