Ejemplo n.º 1
0
        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("密码重置邮件发送成功"));
        }
Ejemplo n.º 2
0
        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邮件发送成功"));
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
 public bool CheckVerifyCode(string code, string id)
 {
     return(VerifyCodeHandler.CheckCode(code, id, false));
 }