我正在从ASP.NET Core应用程序中的QueryString
中读取令牌,我对此感到困惑。
即使StringValues
的值为null
,其Count
也会显示1-参见下文。
我也尝试了StringValues.IsNullOrEmpty(token)
,但是那也失败了。如何可靠地检查StringValues
中是否确实包含有用的数据?
更新: 读取该值的代码如下:
if(path.StartsWith("/im") && context.Request.Query.TryGetValue("access_token", out var token))
{
context.Token = token;
}
我正在从客户端发送一个access_token,像这样:
const connection = new signalR.HubConnectionBuilder()
.withUrl("/myhub?AUTHORIZATION=" + _token)
.configureLogging(signalR.LogLevel.Information)
.build();
答案 0 :(得分:2)
这种情况下的问题是,即使用户已登录,您也要附加access_token。因此,当您访问它时,它具有从客户端发送的“ null”值。
您只需要有条件地附加值
if (accessToken) {
hubUrl += '?authToken' +'=' + accessToken;
}
this._hubConnection = new HubConnectionBuilder()
.withUrl(hubUrl)
.build();