协商之前先验证Azure SIgnalR Service用户凭据

问题描述

我们正在尝试将Azure SignalR服务与我们的Azure功能应用程序连接。函数应用程序中有一个协商方法,该方法"ɵcmp"对象返回给客户端,在此之前,它调用signalR服务。我们希望在调用Azure signalR服务并返回SignalRConnectionInfo对象之前进行数据库调用。我们正在使用SignalRConnectionInfo,我们的协商功能就像下面这样

Microsoft.Azure.WebJobs.Extensions.Signalrservice 1.0.0

似乎库从标头中获取用户ID并传递给signalR服务。在让库调用signalR服务之前,有什么方法可以执行一些代码

[FunctionName("negotiate")] public static SignalRConnectionInfo GetSignalRInfo( [HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequest req,[SignalRConnectionInfo(HubName = "simplechat",UserId = "{headers.x-ms-signalr-userid}")] SignalRConnectionInfo connectionInfo) { return connectionInfo; } 中,有几种方法可以实现这种效果

Microsoft.Azure.WebJobs.Extensions.Signalrservice 1.2.0

还通过使用基于类的中心

 [FunctionName("negotiate")]
    public static SignalRConnectionInfo GetSignalRInfo(
        [HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequest req)
    {
        var userId = req.Query["userid"];
        var hubName = req.Query["hubname"];
        // Doing database check here 
        var connectionInfo = new SignalRConnectionInfo();
        var serviceManager = StaticServiceHubContextStore.Get().ServiceManager;
        connectionInfo.Accesstoken = serviceManager
            .GenerateClientAccesstoken(
                hubName,userId,new List<Claim> { new Claim("claimType","claimValue") });
        connectionInfo.Url = serviceManager.GetClientEndpoint(hubName);
        return connectionInfo;
    }

我想使用该库的1.0.0实现类似的功能。有人可以帮忙吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)