Impossible de mettre à jour le cookie dans ASP.NET

Je suis aller écrous à ce sujet. Je peux écrire un cookie, puis lisez à nouveau. Mais à un certain point, je veux mettre à jour la valeur qu'il détient. Chaque fois que je reçois le cookie de nouveau, j'obtiens la valeur initiale, et non pas la mise à jour. Ci-dessous le code que j'utilise pour rédiger/mettre à jour et lire des cookies.

    private static HttpCookie WriteCookie(Guid siteId, string siteName)
    {
        var cookie = HttpContext.Current.Request.Cookies.Get("UserSettings");
        if(cookie != null) {
            cookie.Value = EncryptObject(new UserSettingsModel { SiteID = siteId, SiteName = siteName });
            HttpContext.Current.Response.Cookies.Set(cookie);
        }else {
            cookie = new HttpCookie("UserSettings") { Path = "/", Expires = DateTime.Now.AddDays(1), Value = EncryptObject(new UserSettingsModel { SiteID = siteId, SiteName = siteName }) };
            HttpContext.Current.Response.Cookies.Add(cookie);
        }
        return cookie;
    }

    public static UserSettingsModel GetUserSettings(string username = null)
    {
        var cookie = HttpContext.Current.Request.Cookies.Get("UserSettings");
        if (cookie == null || string.IsNullOrEmpty(cookie.Value))
        {
            cookie = ResetUserSettings();
        }
        var userSettings = DecryptObject<UserSettingsModel>(cookie.Value);
        if (userSettings != null)
        {
            var siteId = userSettings.SiteID;
            var siteName = userSettings.SiteName;
            return new UserSettingsModel { SiteID = siteId, SiteName = siteName };
        }
        throw new SecurityException("You have no site attached to your user. Contact an administrtor.");
    }

GetUserSettings retourne toujours la valeur que le cookie a été initialement créé avec. Quel est le problème?

EDIT:

J'ai essayé d'appeler WriteCookie directement à partir d'une méthode dans un Contrôleur. Le cookie a été défini. J'ai l'habitude appelé WriteCookie via une requête Ajax. Maintenant, dois-je vraiment écrire le cookie à l'aide de JavaScript, ou puis-je, en quelque sorte, le faire en utilisant WriteCookie?

Merci!

source d'informationauteur Andreas