Example #1
0
        public static void SetAuthCookie(string userName, MyFormsAuthentication userData, bool isPersistent)
        {
            if (userData == null)
            {
                throw new ArgumentNullException("userData");
            }

            string   data       = JsonConvert.SerializeObject(userData);
            DateTime expiration = isPersistent ? DateTime.Now.AddDays(30) : DateTime.Now.AddDays(1);

            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, expiration, isPersistent, data);
            string     cookieValue           = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieValue)
            {
                HttpOnly = false,
                Domain   = FormsAuthentication.CookieDomain,
                Secure   = FormsAuthentication.RequireSSL,
                Path     = FormsAuthentication.FormsCookiePath,
                Expires  = expiration
            };

            HttpContext curHttp = HttpContext.Current;

            if (curHttp == null)
            {
                new InvalidOperationException();
            }

            curHttp.Response.Cookies.Remove(cookie.Name);
            curHttp.Response.Cookies.Add(cookie);
        }
Example #2
0
        public static MyFormPrincipal TryParsePrincipal(HttpContext httpContext)
        {
            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }

            try
            {
                HttpCookie cookie = httpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
                if (cookie == null)
                {
                    return(null);
                }

                FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
                if (ticket == null || string.IsNullOrEmpty(ticket.UserData))
                {
                    return(null);
                }

                MyFormsAuthentication userData = JsonConvert.DeserializeObject <MyFormsAuthentication>(ticket.UserData);
                if (userData == null)
                {
                    return(null);
                }

                return(new MyFormPrincipal(ticket, userData));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
0
        private void MvcApplication_AuthorizeRequest(object sender, EventArgs e)
        {
            MyFormPrincipal principal = MyFormsAuthentication.TryParsePrincipal(this.Context);

            if (principal == null || principal.UserData == null)
            {
                return;
            }

            this.Context.User = principal;
        }
Example #4
0
        public MyFormPrincipal(FormsAuthenticationTicket ticket, MyFormsAuthentication userData)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket");
            }

            if (userData == null)
            {
                throw new ArgumentNullException("userData");
            }

            this.Identity = new FormsIdentity(ticket);
            this.UserData = userData;
        }