gpt4 book ai didi

c# - 如何在 vNext 中获取 SignalR 端点列表?

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:24 25 4
gpt4 key购买 nike

问题

我需要确定 SignalR 是否正在处理当前请求。

问题

如何获取 SignalR 端点列表以检查端点是否存在

一种检查连接是否由 SignalR 中间件服务的方法

上下文

我正在使用 JwtBearerAuthentication (Microsoft.AspNet.Authentication.JwtBearer) 开发 AspNet 5 SignalR

为了在所有平台上可靠地验证 SignalR 与 token 的连接,我必须使用查询字符串来传递它。

用例

可以找到我需要的实际代码 here :

app.UseJwtBearerAuthentication(options => {
options.Events = new JwtBearerEvents {
// Note: for SignalR connections, the default Authorization header does not work,
// because the WebSockets JS API doesn't allow setting custom parameters.
// To work around this limitation, the access token is retrieved from the query string.
OnReceivingToken = context => {
// Note: when the token is missing from the query string,
// context.Token is null and the JWT bearer middleware will
// automatically try to retrieve it from the Authorization header.

// >>> Here i need to check if the connection is served by signalr
// >>> And if not, simply not take token from query string
context.Token = context.Request.Query["access_token"];

return Task.FromResult(0);
}
};
});

最佳答案

您可以在那里访问 HttpContext,因此您可以检查路径以查看是否正在向 signalr 端点发出请求;

OnReceivingToken = context => {
var isSignalR = context.HttpContext.Request.Path.ToString().StartsWith("/signalr");
}

关于c# - 如何在 vNext 中获取 SignalR 端点列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33948970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com