Файл cookie asp.mvc не возвращается в следующем запросе (POST) - PullRequest
0 голосов
/ 25 сентября 2018

ОК ... Итак, у меня есть помощник onActionExecuting в базовом классе моего контроллера.он просто добавляет cookie-файл в заголовок ответа:

public static void SaveCookie(ECookieName cookieName, object data, HttpContextBase httpContext)
{
    string _cookieName = Enum.GetName(typeof(ECookieName), cookieName);

    if (httpContext == null)
        httpContext = new HttpContextWrapper(HttpContext.Current.ApplicationInstance.Context);

    string serialized = Newtonsoft.Json.JsonConvert.SerializeObject(data, new Newtonsoft.Json.JsonSerializerSettings()
    {
        PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects
    });

    HttpCookie cookie = new HttpCookie(_cookieName, serialized) {Path="/", HttpOnly=true, Secure=false, Expires=DateTime.Now.AddYears(1)};

    httpContext.Request.Headers.Remove(_cookieName);
    httpContext.Response.Headers.Remove(_cookieName);

    httpContext.Request.Headers.Add(_cookieName, serialized);
    httpContext.Response.Headers.Add(_cookieName, serialized);

    httpContext.Request.Cookies.Remove(_cookieName);
    httpContext.Request.Cookies.Add(cookie);
    httpContext.Request.Cookies[_cookieName].Path = "/";

    httpContext.Response.Cookies.Remove(_cookieName); // ensure it isn't in the response multiple times
    httpContext.Response.AppendCookie(cookie);
    httpContext.Response.Cookies[_cookieName].Path = "/";
}

, когда я попадаю на первую страницу, он записывает cookie-файл, и я вижу его в фиддлере.Затем страница отправляет сообщение об аутентификации ... но когда оно туда попадает ... нет куки ... поэтому данные, которые я собрал и спрятал в куки, исчезли ... app-crash.Я хотел бы любой вклад.в основном я храню строку идентификаторов и некоторые другие вещи, которые я не могу использовать Session или Cache для ... это казалось логичным местом, но это не работает, как я надеялся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...