예제 #1
0
        /// <summary>
        /// Creates the user authentication ticket.
        /// </summary>
        /// <param name="identity"></param>
        /// <param name="httpContext"></param>
        public void CreateAuthenticationTicket(MyEventsIdentity identity, HttpContextBase httpContext)
        {
            Dictionary <string, object> facebookUserInformation = _thirdPartyLoginService.GetUserInformation(identity);

            _thirdPartyLoginService.MapUserInformationToIdentity(facebookUserInformation, identity);

            identity.UserId = AddUser(identity);

            var    serializer = new JavaScriptSerializer();
            string userData   = serializer.Serialize(identity);

            var authTicket =
                new FormsAuthenticationTicket(
                    3,
                    identity.UserName,
                    DateTime.Now,
                    DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
                    false,
                    userData
                    );

            var authCookie = new HttpCookie(
                FormsAuthentication.FormsCookieName,
                FormsAuthentication.Encrypt(authTicket)
                )
            {
                HttpOnly = true
            };

            httpContext.Response.AppendCookie(authCookie);
        }