Печенье быстро умирает

#asp.net-mvc-3 #cookies

#asp.net-mvc-3 #файлы cookie

Вопрос:

У меня проблема с cookie на сервере. Cookie быстро умирает. На локальном хосте cookie хорошо работает. Но странность в другом. Сам cookie присутствует, но этот код его не видит

Для создания cookie я использовал этот код

     public void SignIn(BaseUser user, bool isRememberMe)
    {
        string data = string.Format("{0},{1}, {2}", user.Id, user.Role.RoleName, user.Role.IsSuperRole);
        if (string.IsNullOrEmpty(user.UserName))
        {
            throw new ArgumentException("Error", "userName");
        }

        var ticket = new FormsAuthenticationTicket(
            1,
            user.UserName,
            DateTime.Now.ToLocalTime(),
            DateTime.Now.ToLocalTime().AddDays(30),
            isRememberMe,
            data,
            FormsAuthentication.FormsCookiePath);

        var encryptedTicket = FormsAuthentication.Encrypt(ticket);

        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
            {
                HttpOnly = true,
                Secure = FormsAuthentication.RequireSSL,
                Path = FormsAuthentication.FormsCookiePath,
            };

        if (FormsAuthentication.CookieDomain != null)
        {
            cookie.Domain = FormsAuthentication.CookieDomain;
        }

        HttpContext.Current.Response.Cookies.Add(cookie);
    }
  

Для чтения и изменения cookie я использую этот код

     protected void Application_AuthenticateRequest(Object sender, EventArgs e)
    {
        HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
        Identity id = null;

        if (authCookie != null)
        {
            FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
            id = this.GetUserIdentity(authTicket);
            authCookie.Expires = DateTime.Now.AddDays(30);
            HttpContext.Current.Response.Cookies.Add(authCookie);
        }
        else
        {
            id = new Identity();
        }

        var user = new Principal(id, id.RoleName);
        Context.User = user;
    }

    private Identity GetUserIdentity(FormsAuthenticationTicket ticket)
    {
        string[] userDetal = ticket.UserData.Split(Convert.ToChar(","));
        int id = int.Parse(userDetal[0]);
        string roleName = userDetal[1];
        bool isSuperRole;
        bool.TryParse(userDetal[2], out isSuperRole);
        string userName = ticket.Name;

        return new Identity(id, userName, true, isSuperRole, roleName);
    }