public async Task <AjaxResult> SendResetPasswordMail(SendMailDto dto) { if (!ModelState.IsValid) { return(new AjaxResult("提交数据验证失败", AjaxResultType.Error)); } if (!VerifyCodeHandler.CheckCode(dto.VerifyCode, dto.VerifyCodeId)) { return(new AjaxResult("验证码错误,请刷新重试", AjaxResultType.Error)); } User user = await _userManager.FindByEmailAsync(dto.Email); if (user == null) { return(new AjaxResult("用户不存在", AjaxResultType.Error)); } string token = await _userManager.GeneratePasswordResetTokenAsync(user); token = UrlBase64ReplaceChar(token); IEmailSender sender = ServiceLocator.Instance.GetService <IEmailSender>(); string url = $"{Request.Scheme}://{Request.Host}/#/identity/reset-password?userId={user.Id}&token={token}"; string body = $"亲爱的用户 <strong>{user.NickName}</strong>[{user.UserName}],您好!<br>" + $"欢迎使用柳柳软件账户密码重置功能,请 <a href=\"{url}\" target=\"_blank\"><strong>点击这里</strong></a><br>" + $"如果上面的链接无法点击,您可以复制以下地址,并粘贴到浏览器的地址栏中打开。<br>" + $"{url}<br>" + $"祝您使用愉快!"; await sender.SendEmailAsync(user.Email, "柳柳软件 重置密码邮件", body); return(new AjaxResult("密码重置邮件发送成功")); }
public async Task <AjaxResult> SendConfirmMail(SendMailDto dto) { if (!ModelState.IsValid) { return(new AjaxResult("提交信息验证失败", AjaxResultType.Error)); } if (!VerifyCodeHandler.CheckCode(dto.VerifyCode, dto.VerifyCodeId)) { return(new AjaxResult("验证码错误,请刷新重试", AjaxResultType.Error)); } User user = await _userManager.FindByEmailAsync(dto.Email); if (user == null) { return(new AjaxResult("发送激活邮件失败:用户不存在", AjaxResultType.Error)); } if (user.EmailConfirmed) { return(new AjaxResult("Email已激活,无需再次激活", AjaxResultType.Info)); } string code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = UrlBase64ReplaceChar(code); string url = $"{Request.Scheme}://{Request.Host}/#/identity/confirm-email?userId={user.Id}&code={code}"; string body = $"亲爱的用户 <strong>{user.NickName}</strong>[{user.UserName}],你好!<br>" + $"欢迎注册,激活邮箱请 <a href=\"{url}\" target=\"_blank\"><strong>点击这里</strong></a><br>" + $"如果上面的链接无法点击,您可以复制以下地址,并粘贴到浏览器的地址栏中打开。<br>" + $"{url}<br>" + $"祝您使用愉快!"; await SendMailAsync(user.Email, "柳柳软件 注册邮箱激活邮件", body); return(new AjaxResult("激活Email邮件发送成功")); }
public async Task <AjaxResult> Register(RegisterDto dto) { Check.NotNull(dto, nameof(dto)); if (!ModelState.IsValid) { return(new AjaxResult("提交信息验证失败", AjaxResultType.Error)); } if (!VerifyCodeHandler.CheckCode(dto.VerifyCode, dto.VerifyCodeId)) { return(new AjaxResult("验证码错误,请刷新重试", AjaxResultType.Error)); } dto.RegisterIp = HttpContext.GetClientIp(); OperationResult <User> result = await _identityContract.Register(dto); if (result.Successed) { User user = result.Data; string code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = UrlBase64ReplaceChar(code); string url = $"{Request.Scheme}://{Request.Host}/#/identity/confirm-email?userId={user.Id}&code={code}"; string body = $"亲爱的用户 <strong>{user.NickName}</strong>[{user.UserName}],您好!<br>" + $"欢迎注册,激活邮箱请 <a href=\"{url}\" target=\"_blank\"><strong>点击这里</strong></a><br>" + $"如果上面的链接无法点击,您可以复制以下地址,并粘贴到浏览器的地址栏中打开。<br>" + $"{url}<br>" + $"祝您使用愉快!"; await SendMailAsync(user.Email, "柳柳软件 注册邮箱激活邮件", body); } return(result.ToAjaxResult()); }
public string VerifyCode() { ValidateCoder coder = new ValidateCoder() { RandomColor = true, RandomItalic = true, RandomLineCount = 7, RandomPointPercent = 10, RandomPosition = true }; Bitmap bitmap = coder.CreateImage(4, out string code); VerifyCodeHandler.SetCode(code, out string id); return(VerifyCodeHandler.GetImageString(bitmap, id)); }
public bool CheckVerifyCode(string code, string id) { return(VerifyCodeHandler.CheckCode(code, id, false)); }