QueryString.Добавить добавление значения в строки запроса запроса в ASP.NET Core. - PullRequest
0 голосов
/ 12 марта 2019

Я пишу промежуточное программное обеспечение, в котором я хочу изменить значения строки запроса для текущего запроса, но я не могу этого сделать.Метод afaik QueryString.Add должен работать, но он не влияет на строку запроса.Вот что я попробовал.

public async Task Invoke(HttpContext context, IHeaderValue headerValue, IUser user)
{
    var result = context.Request.Headers["Authorization"];

    if (result.Count != 0)
    {

        headerValue.UserId = this.GetUserIdFromToken(result[0]);

        var request = context.Request;

        if (request.Method == "GET")
        {
            // It should be adding the new query value to the QueryString collection
            // but it doesn't
            request.QueryString.Add("CurrentUserId", headerValue.UserId.ToString());
        }
    }
}

Я буду очень признателен за любую помощь с этим.

1 Ответ

3 голосов
/ 12 марта 2019

QueryString.Add возвращает новый QueryString, содержащий заданное имя и значение. Он не изменяет QueryString, на котором он вызывается.

Так что вам нужно сделать что-то вроде

request.QueryString = request.QueryString.Add("A", "B");
...