即使value为null,StringValues Count也显示1

时间:2018-07-13 00:25:50

标签: c# asp.net asp.net-core

我正在从ASP.NET Core应用程序中的QueryString中读取令牌,我对此感到困惑。

即使StringValues的值为null,其Count也会显示1-参见下文。

enter image description here

我也尝试了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();

1 个答案:

答案 0 :(得分:2)

这种情况下的问题是,即使用户已登录,您也要附加access_token。因此,当您访问它时,它具有从客户端发送的“ null”值。

您只需要有条件地附加值

if (accessToken) {
    hubUrl += '?authToken' +'=' + accessToken;
}

this._hubConnection = new HubConnectionBuilder()
                            .withUrl(hubUrl)
                            .build();