Можете ли вы добавить файл cookie для запроса с промежуточным программным обеспечением ядра asp.net? - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь записать собственное промежуточное ПО в базовый конвейер ASP.net, так как часть моего вызова хочет добавить / добавить cookie, чтобы затем следующее промежуточное ПО в конвейере могло получить доступ к этим cookie.

Получение ошибки компиляции при установке значения cookie. Может кто-нибудь порекомендовать обойти это.

Примечание: Когда я пытался с Response.Cookie, он работает, но единственная проблема в том, что cookie отражается только при следующем запросе от браузера, но мне нужно, чтобы это отражалось на следующем промежуточном программном обеспечении в конвейере сразу после выполнения этого.

ниже фрагмент кода

  public async Task Invoke(HttpContext httpContext)
        {


            var queryParameters = httpContext.Request.Query;
            var cookies = httpContext.Request.Cookies;
            if (!cookies.ContainsKey(".AspNetCore.Session")
                || cookies[".AspNetCore.Session"] != "new_key")
            {

httpContext.Request.Cookies [". AspNetCore.Session"] = "new_key";

            }


            await _next.Invoke(httpContext);
        }

1 Ответ

0 голосов
/ 06 ноября 2018

Вы не можете использовать значение cookie в одном запросе. Тем не менее, вы можете использовать старый добрый HttpContext.Items.

public async Task InvokeAsync(HttpContext context)
{
    context.Request.HttpContext.Items["key"] = "Hello!";
    await _next(context);
}

Затем вы получаете его как

var value = HttpContext.Items["key"];
...