Пример #1
0
        private void CreateTicket(User user, bool rememberMe)
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                HttpCookie _AuthCookie = new HttpCookie($"_{FormsAuthentication.FormsCookieName}", (User as ICurrentUserPrincipal).UserId.ToString())
                {
                    Expires = authCookie.Expires
                };
                HttpContext.Response.Cookies.Add(_AuthCookie);
            }

            var currentUser = new CurrentUserPrincipal();

            currentUser.UserId      = user.UserId;
            currentUser.FullName    = $"{user.FirstName} {user.LastName}";
            currentUser.UserName    = user.Email.ToString();
            currentUser.CustomField = new UserExtraData {
                MobileNumber = user.MobileNumber
            };
            var    expDateTime = rememberMe ? DateTime.Now.AddHours(int.Parse(AppSettings.AuthTimeoutWithRemeberMeInHours)) : DateTime.Now.AddMinutes(int.Parse(AppSettings.AuthTimeoutInMiutes));
            string userData    = currentUser.SerializeToJson();
            FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, user.MobileNumber.ToString(), DateTime.Now, expDateTime, true, userData);
            string     encTicket = FormsAuthentication.Encrypt(authTicket);
            HttpCookie cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)
            {
                Expires  = expDateTime,
                HttpOnly = true
            };

            //FormsAuthentication.set
            HttpContext.Response.Cookies.Add(cookie);
        }
Пример #2
0
        private void FillUserProfile()
        {
            _userProfile = new Dictionary <string, string>();
            var userProfileCaim = CurrentUserPrincipal.FindFirst(delegate(Claim it) { return(it.Value == "userprofile"); });

            if (userProfileCaim.IsNotNull())
            {
                _userProfile = userProfileCaim.Properties;
            }
        }
Пример #3
0
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            try
            {
                HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
                if (authCookie != null)
                {
                    FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    if (authTicket.UserData == "OAuth") return;

                    var serializeModel = serializer.Deserialize<BaseUser>(authTicket.UserData);
                    var user = new CurrentUserPrincipal(authTicket.Name);
                    user.UserId = serializeModel.UserId;
                    user.FullName = serializeModel.FullName;
                    user.Email = serializeModel.Email;
                    user.Picture = serializeModel.Picture;
                    HttpContext.Current.User = user;
                }
            }
            catch (Exception ex)
            {
                ErrorSignal.FromCurrentContext().Raise(ex);
                FormsAuthentication.SignOut();
                HttpCookie oldCookie = new HttpCookie(".ASPXAUTH");
                oldCookie.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(oldCookie);

                HttpCookie ASPNET_SessionId = new HttpCookie("ASP.NET_SessionId");
                ASPNET_SessionId.Expires = DateTime.Now.AddDays(-1);
                Response.Cookies.Add(ASPNET_SessionId);

                var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
                Response.Redirect(urlHelper.Action(MVC.Home.ActionNames.Index, MVC.Home.Name));
            }
        }
        protected ActionResponse <string> SignIn(User user, bool rememberMe)
        {
            var menuRep = _userSrv.GetAvailableActions(user.UserId);

            if (menuRep == null)
            {
                return new ActionResponse <string>
                       {
                           IsSuccessful = false,
                           Message      = LocalMessage.ThereIsNoView
                       }
            }
            ;

            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                HttpCookie _AuthCookie = new HttpCookie($"_{FormsAuthentication.FormsCookieName}", (User as ICurrentUserPrincipal).UserId.ToString())
                {
                    Expires = authCookie.Expires
                };

                HttpContext.Response.Cookies.Add(_AuthCookie);
            }

            var currentUser = new CurrentUserPrincipal();

            currentUser.UserId      = user.UserId;
            currentUser.FullName    = $"{user.FirstName} {user.LastName}";
            currentUser.UserName    = user.Email.ToString();
            currentUser.CustomField = new UserExtraData {
                MobileNumber = user.MobileNumber
            };
            var    expDateTime = rememberMe ? DateTime.Now.AddHours(int.Parse(AppSettings.AuthTimeoutWithRemeberMeInHours)) : DateTime.Now.AddMinutes(int.Parse(AppSettings.AuthTimeoutInMiutes));
            string userData    = currentUser.SerializeToJson();
            FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, user.MobileNumber.ToString(), DateTime.Now, expDateTime, true, userData);
            string     encTicket = FormsAuthentication.Encrypt(authTicket);
            HttpCookie cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)
            {
                Expires  = expDateTime,
                HttpOnly = true
            };

            //FormsAuthentication.set
            //System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
            HttpContext.Response.Cookies.Add(cookie);
            //var currentUser = serializer.Deserialize<CurrentUserPrincipal>(authTicket.UserData);
            currentUser.SetIdentity(authTicket.Name);
            currentUser.UserActionList          = menuRep.Items.ToList();
            System.Web.HttpContext.Current.User = currentUser;
            if (menuRep.DefaultUserAction.RoleId != int.Parse(AppSettings.UserRoleId))
            {
                return new ActionResponse <string>
                       {
                           IsSuccessful = true
                       }
            }
            ;

            return(new ActionResponse <string>
            {
                IsSuccessful = true
            });
        }
    }
}