public virtual void Process(PasswordResetRequestedEvent evt, object extra = null)
        {
            var data = GetExtraProperties(evt.Account, extra);

            data.Add("ConfirmPasswordResetUrl", AppInfo.AppUrl + AppInfo.ConfirmPasswordResetUrl + data["VerificationKey"]);
            data.Add("CancelVerificationUrl", AppInfo.AppUrl + AppInfo.CancelVerificationUrl + data["VerificationKey"]);

            Send(evt, evt.Account.Email, data);
        }
Пример #2
0
        public void Handle(PasswordResetRequestedEvent <HierarchicalUserAccount> evt)
        {
            DateTime verificationExpiration = VerificationExpirationTimestamp(evt.Account.VerificationKeySent, evt);

            Process(evt,
                    new
            {
                evt.VerificationKey,
                VerificationExpiration         = verificationExpiration.ToString("MMMM d, yyyy a\\t h:mm tt"),
                VerificationExpirationTimezone = GetTimeZoneName(verificationExpiration)
            });
        }
Пример #3
0
        public static async Task <PassResetRequestOutput> RequestPassResetAsync <TAccount>(
            UserAccountService <TAccount> userAccountService, string email)
            where TAccount : RelationalUserAccount
        {
            PasswordResetRequestedEvent <TAccount> e = null;

            userAccountService.Configuration.AddEventHandler(new MembershipRebootEventHandlers.PasswordResetRequestedEventHandler <TAccount>
                                                                 ((evt) =>
            {
                e = evt;
            })
                                                             );
            userAccountService.ResetPassword(email);

            return(new PassResetRequestOutput
            {
                VerificationKey = e.VerificationKey
            });
        }
Пример #4
0
        /// <summary>
        /// Force resets a user password to a specified one
        /// </summary>
        /// <typeparam name="TAccount"></typeparam>
        /// <param name="userAccountService"></param>
        /// <param name="userId"></param>
        /// <param name="newPass"></param>
        /// <returns></returns>
        public static async Task <ForceResetPasswordOutput> ForceResetPasswordAsync <TAccount>(
            UserAccountService <TAccount> userAccountService, Guid userId, string newPass)
            where TAccount : RelationalUserAccount
        {
            var output = new ForceResetPasswordOutput();

            if (string.IsNullOrWhiteSpace(newPass))
            {
                output.FailureReason = "new_pass_null";
                return(output);
            }

            try
            {
                PasswordResetRequestedEvent <TAccount> e = null;
                userAccountService.Configuration.AddEventHandler(new MembershipRebootEventHandlers.PasswordResetRequestedEventHandler <TAccount>
                                                                     ((evt) =>
                {
                    e = evt;
                })
                                                                 );
                userAccountService.ResetPassword(userId);

                //got the reset token, so can now change the pass..
                output.Success = userAccountService.ChangePasswordFromResetKey(e.VerificationKey, newPass);
            }
            catch (Exception ex)
            {
                if (ex.Message == "The new password must be different from the old password.")
                {
                    output.FailureReason = "new_pass_same_as_old_pass";
                }
            }

            return(output);
        }
 public void Handle(PasswordResetRequestedEvent evt) => Process(evt);
Пример #6
0
 public void Handle(PasswordResetRequestedEvent <UserAccount> evt)
 {
     LastEvent           = evt;
     LastVerificationKey = evt.VerificationKey;
 }
Пример #7
0
 public void Handle(PasswordResetRequestedEvent <TAccount> evt)
 {
     _a?.Invoke(evt);
 }
 public void Handle(PasswordResetRequestedEvent evt)
 {
     Process(evt, new { evt.VerificationKey });
 }