Приготовление ie не завершено при чтении в asp. net mvc, но завершено в браузере - PullRequest
2 голосов
/ 29 января 2020

Если повар ie отправляется с запросом из браузера на конечную точку asp. net mvc, он является неполным (иногда). Содержимое повара ie представляет собой небольшой объект json, содержащий немного информации (длиной около 400 символов).

Повар ie разрезается после 57 символов.

Файлы cookie добавляются следующим образом (AddCookieObject):

protected void AddCookieObject(string name, object o, DateTime expires = default(DateTime))
{
    AddCookieValue(name, JsonConvert.SerializeObject(o), expires);
}

protected void AddCookieValue(string name, string value, DateTime expires = default(DateTime))
{
    var c = new HttpCookie(name, value);
    c.Expires = expires;
    AddCookie(c);
}

protected void AddCookie(HttpCookie cookie)
{
    var cookies = ControllerContext.HttpContext.Response.Cookies;
    cookies.Add(cookie);
}

И если я читаю файлы cookie с использованием GetCookieObject<T>, они неполные, и json анализ не выполняется:

protected T GetCookieObject<T>(string name)
{
    var manager = new LogManager();
    string json = GetCookieValue(name);
    try
    {
        if (json != null)
            manager.Warning($"Cookie: {name}\r\n{json}");

        return json != null ? JsonConvert.DeserializeObject<T>(json) : default(T);
    }
    catch (Exception)
    {
        manager.Warning($"Invalid cookie: {name}: {json ?? "<empty>"}");
        return default(T);
    }
}

protected string GetCookieValue(string name)
{
    var cookie = GetCookie(name);
    return cookie != null ? cookie.Value : null;
}

protected HttpCookie GetCookie(string name)
{
    var cookies = ControllerContext.HttpContext.Request.Cookies;
    return cookies.AllKeys.Contains(name) ? cookies[name] : null;
}

Спасибо за любую помощь!

...