Example #1
0
        public async Task <JsonResult> IdTokenVerification(string idToken, int clientTimezoneOffset)
        {
            var payload = await GoogleJsonWebSignature.ValidateAsync(idToken,
                                                                     new GoogleJsonWebSignature.ValidationSettings()
            {
                IssuedAtClockTolerance = TimeSpan.FromDays(1)     // for cases when server's time different from UTC time (google time).
            });

            if (payload != null)
            {
                var member = _memberService.GetByEmail(payload.Email);
                if (member != null)
                {
                    FormsAuthentication.SetAuthCookie(member.Username, true);
                    _timezoneOffsetProvider.SetTimezoneOffset(clientTimezoneOffset);

                    if (!_memberServiceHelper.IsFirstLoginPerformed(member))
                    {
                        SendWelcomeNotification(member.Key);
                        _memberServiceHelper.SetFirstLoginPerformed(member);
                    }

                    return(Json(new GoogleAuthResultModel()
                    {
                        Url = DefaultRedirectUrl,
                        Success = true
                    }));
                }
            }
            return(Json(new GoogleAuthResultModel()));
        }
Example #2
0
        public override ActionResult Login(LoginModelBase model)
        {
            if (!ModelState.IsValid)
            {
                return(View(LoginViewPath, model));
            }

            SetDefaultUserData();

            if (!Membership.ValidateUser(model.Login, model.Password))
            {
                ModelState.AddModelError("UserValidation", _intranetLocalizationService.Translate("Login.Validation.UserNotValid"));
                return(View(LoginViewPath, model));
            }

            var redirectUrl = model.ReturnUrl ?? DefaultRedirectUrl;

            if (Members.Login(model.Login, model.Password))
            {
                _timezoneOffsetProvider.SetTimezoneOffset(model.ClientTimezoneOffset);

                var member = Members.GetByUsername(model.Login);
                if (!_memberServiceHelper.IsFirstLoginPerformed(_memberService.GetByKey(member.GetKey())))
                {
                    SendWelcomeNotification(member.GetKey());
                }
                _memberServiceHelper.SetFirstLoginPerformed(_memberService.GetByKey(member.GetKey()));
            }

            return(Redirect(redirectUrl));
        }
        public virtual ActionResult Login(LoginModelBase model)
        {
            if (!ModelState.IsValid)
            {
                return(View(LoginViewPath, model));
            }

            if (!Membership.ValidateUser(model.Login, model.Password))
            {
                ModelState.AddModelError("UserValidation",
                                         _intranetLocalizationService.Translate("Login.Validation.UserNotValid"));
                return(View(LoginViewPath, model));
            }

            var redirectUrl = model.ReturnUrl ?? DefaultRedirectUrl;

            if (Members.Login(model.Login, model.Password))
            {
                _timezoneOffsetProvider.SetTimezoneOffset(model.ClientTimezoneOffset);
            }
            return(Redirect(redirectUrl));
        }