public virtual DataResultUserCantAccess CantAccessYourAccount(string activateFormVirtualPath, string email) { //DataResultUserCantAccess result; DataResultUserCantAccess result; MembershipUserCollection usersFound = Membership.FindUsersByEmail(email); MembershipUser[] usersResult = new MembershipUser[usersFound.Count]; usersFound.CopyTo(usersResult, 0); List<MembershipUserWrapper> users = (from u in usersResult select new MembershipUserWrapper(u)).ToList(); if (users.Count > 1) { throw new Exception(string.Format("Duplicated emails found: {0}", email)); } if (users.Count == 1) { MembershipUserWrapper user = (MembershipUserWrapper)users.First(); CantAccessMyAccountModel resultModel = new CantAccessMyAccountModel(); resultModel.User = user; result = new DataResultUserCantAccess() { Data = resultModel, Message = Resources.Account.AccountResources.CantAccessYourAccount_EmailSent }; } else { result = new DataResultUserCantAccess() { IsValid = false, Message = Resources.Account.AccountResources.CantAccessYourAccount_EmailNotFound, MessageType = DataResultMessageType.Error }; } return result; }
public DataResultUserCantAccess ResetPassword(Guid guid, string newPassword, string confirmNewPassword) { DataResultUserCantAccess result; if (!this.ValidatePasswordStrength(newPassword)) { result = new DataResultUserCantAccess() { IsValid = false, Message = Resources.Account.AccountResources.InvalidPassword, MessageType = DataResultMessageType.Error }; } else { if (!newPassword.Equals(confirmNewPassword)) { result = new DataResultUserCantAccess() { IsValid = false, Message = Resources.Account.AccountResources.NewPasswordConfirmError, MessageType = DataResultMessageType.Error }; } else { ITokenTemporaryPersistenceBL<MembershipUserWrapper> tokenServices = null; try { tokenServices = new TokenTemporaryPersistenceBL<MembershipUserWrapper>(); object tokenTempItem = tokenServices.GetById(guid); if (tokenTempItem == null) { result = new DataResultUserCantAccess() { IsValid = false, Message = AccountResources.CantAccessYourAccount_TokenExpired, MessageType = DataResultMessageType.Error }; } else { using (TransactionScope trans = this.TransactionScopeCreate()) { MembershipUserWrapper userChangingPassword = ((TokenTemporaryPersistenceServiceItem<MembershipUserWrapper>)tokenTempItem).TokenObject; result = this._dal.ResetPassword(userChangingPassword, newPassword, confirmNewPassword); if (result.IsValid) { MailMessage mail = new MailMessage(); mail.From = new MailAddress(ApplicationConfiguration.MailingSettingsSection.SupportTeamEmailAddress); mail.Bcc.Add(new MailAddress(result.Data.User.Email)); mail.Subject = string.Format(AccountResources.ChangePassword_EmailTitle, ApplicationConfiguration.DomainInfoSettingsSection.DomainName); mail.Body = string.Format(AccountResources.ChangePassword_EmailBody, ApplicationConfiguration.DomainInfoSettingsSection.DomainName); using (ISmtpClient smtp = DependencyFactory.Resolve<ISmtpClient>()) { // Do not use SendAsync -> otherwise transaction could commit without sending mail smtp.Send(mail); } tokenServices.Delete(new TokenTemporaryPersistenceServiceItem<MembershipUserWrapper>() { Token = guid }); trans.Complete(); this.ForceAuthentication(userChangingPassword.UserName); } } } } catch (Exception ex) { throw ex; } finally { if (tokenServices != null) { tokenServices.Dispose(); } } } } return result; }
public DataResultUserCantAccess ResetPassword(Guid guid, string newPassword, string confirmNewPassword) { DataResultUserCantAccess result; if (!this.ValidatePasswordStrength(newPassword)) { result = new DataResultUserCantAccess() { IsValid = false, Message = Resources.Account.AccountResources.InvalidPassword, MessageType = DataResultMessageType.Error }; } else { if (!newPassword.Equals(confirmNewPassword)) { result = new DataResultUserCantAccess() { IsValid = false, Message = Resources.Account.AccountResources.NewPasswordConfirmError, MessageType = DataResultMessageType.Error }; } else { ITokenTemporaryPersistenceBL<MembershipUserWrapper> tokenServices = null; try { tokenServices = new TokenTemporaryPersistenceBL<MembershipUserWrapper>(); object tokenTempItem = tokenServices.GetById(guid); if (tokenTempItem == null) { result = new DataResultUserCantAccess() { IsValid = false, Message = AccountResources.CantAccessYourAccount_TokenExpired, MessageType = DataResultMessageType.Error }; } else { using (TransactionScope trans = this.TransactionScopeCreate()) { MembershipUserWrapper userChangingPassword = ((TokenTemporaryPersistenceServiceItem<MembershipUserWrapper>)tokenTempItem).TokenObject; result = this._dal.ResetPassword(userChangingPassword, newPassword, confirmNewPassword); if (result.IsValid) { MailingHelper.Send(delegate() { MailMessage mail = new MailMessage(); mail.From = new MailAddress(MailingHelper.MailingConfig.SupportTeamEmailAddress); mail.Bcc.Add(new MailAddress(result.Data.User.Email)); mail.Subject = string.Format(AccountResources.ChangePassword_EmailTitle, MailingHelper.DomainConfig.DomainName); mail.Body = string.Format(AccountResources.ChangePassword_EmailBody, MailingHelper.DomainConfig.DomainName); return mail; }); tokenServices.Delete(new TokenTemporaryPersistenceServiceItem<MembershipUserWrapper>() { Token = guid }); trans.Complete(); this.ForceAuthentication(userChangingPassword.UserName); } } } } catch (Exception ex) { throw ex; } finally { if (tokenServices != null) { tokenServices.Dispose(); } } } } return result; }