コード例 #1
0
ファイル: Global.asax.cs プロジェクト: stuartleaver/OODTutor
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

                JavaScriptSerializer serializer = new JavaScriptSerializer();

                StudentPrincipleSerializeModel serializeModel = serializer.Deserialize <StudentPrincipleSerializeModel>(authTicket.UserData);

                StudentPrincipal newUser = new StudentPrincipal(authTicket.Name);
                newUser.Id       = serializeModel.Id;
                newUser.Username = serializeModel.Username;

                HttpContext.Current.User = newUser;
            }
        }
コード例 #2
0
        public virtual Student GetAuthenticatedCustomerFromTicket(FormsAuthenticationTicket ticket)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket");
            }

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            StudentPrincipleSerializeModel serializeModel = serializer.Deserialize <StudentPrincipleSerializeModel>(ticket.UserData);

            var usernameOrEmail = serializeModel.Username;

            if (String.IsNullOrWhiteSpace(usernameOrEmail))
            {
                return(null);
            }
            var student = _studentService.GetStudentByUsername(usernameOrEmail);

            return(student);
        }
コード例 #3
0
        public void SignIn(Student student, bool createPersistentCookie)
        {
            var webWorkContect = DependencyResolver.Current.GetService <IWorkContext>();


            var now = DateTime.UtcNow.ToLocalTime();

            var serializeModel = new StudentPrincipleSerializeModel {
                Id = student.Id, Username = student.Username, Roles = student.StudentRoles
            };
            var serializer = new JavaScriptSerializer();
            var userData   = serializer.Serialize(serializeModel);

            var ticket = new FormsAuthenticationTicket(
                1 /*version*/,
                student.Username,
                now,
                createPersistentCookie ? now.AddDays(7) : now.Add(_expirationTimeSpan),
                createPersistentCookie,
                userData);

            var encryptedTicket = FormsAuthentication.Encrypt(ticket);

            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

            cookie.HttpOnly = true;
            if (ticket.IsPersistent)
            {
                cookie.Expires = ticket.Expiration;
            }
            cookie.Secure = FormsAuthentication.RequireSSL;
            cookie.Path   = FormsAuthentication.FormsCookiePath;
            if (FormsAuthentication.CookieDomain != null)
            {
                cookie.Domain = FormsAuthentication.CookieDomain;
            }

            _httpContext.Response.Cookies.Add(cookie);
            _cachedStudent = student;
        }