Example #1
0
        public static void AuthCookieTime()
        {
            if (SecurityData.IsAuthenticated && FormsAuthentication.SlidingExpiration)
            {
                string key = SecurityData.AuthKey;

                string lastSet = HttpContext.Current.Cache[key] != null ? HttpContext.Current.Cache[key].ToString() : String.Empty;

                if (String.IsNullOrEmpty(lastSet))
                {
                    string tOut    = SiteData.GetAuthFormProp("timeout");
                    int    timeout = Convert.ToInt32((tOut == null ? "30" : tOut));

                    if (timeout < 5)
                    {
                        timeout = 5;
                    }

                    int expCache = timeout <= 60 ? 5 : 30;

                    HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName);

                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(SecurityData.CurrentUserIdentityName, true, timeout);

                    string theTicket = FormsAuthentication.Encrypt(ticket);

                    authCookie         = HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName];
                    authCookie.Value   = theTicket;
                    authCookie.Expires = DateTime.Now.AddMinutes((timeout + 2));
                    authCookie.Path    = "/";

                    HttpContext.Current.Cache.Insert(key, SecurityData.CurrentUserIdentityName, null, DateTime.Now.AddMinutes(expCache), Cache.NoSlidingExpiration);
                }
            }
        }