ОК ... Итак, у меня есть помощник 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 для ... это казалось логичным местом, но это не работает, как я надеялся.