예제 #1
0
        public void SendTest()
        {
            var helper = new EmailSendHelper
            {
                Host      = "smtp.exmail.qq.com",
                Port      = 587,
                EnableSsl = true,
                From      = "",
                UserName  = "",
                Password  = "",
                To        = "*****@*****.**",
                Subject   = "test",
                Body      = "test"
            };

            var b = helper.Send();

            Assert.True(b);
        }
예제 #2
0
        public async Task <IActionResult> EmployeeLoginAsync([FromBody] LoginDto loginDto)
        {
            var loginEmp = await wrapperRepository.EmployeeRepository.LoginAsync(loginDto);

            //Employees employees =  new Employees()  { Email="*****@*****.**",Name= "fsnysohui" ,Phone="44861231"};

            if (loginEmp == null)
            {
                return(NotFound());
            }

            //生成密钥
            SymmetricSecurityKey key = new SymmetricSecurityKey(System.Text.Encoding.ASCII.GetBytes("asdadhajhdkjahsdkjahdkj9au8d9adasidoad89asu813e"));

            //生成签名
            var sig = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);

            //声明你是谁
            List <Claim> claimList = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, loginEmp.ID.ToString()),  //type  //value
                new Claim(ClaimTypes.Email, loginEmp.Email),
                new Claim(JwtClaimTypes.PhoneNumber, loginEmp.Phone),
                new Claim(JwtClaimTypes.NickName, loginEmp.Name),
            };

            //获取员工对应的角色信息
            var roles = await wrapperRepository.Employee_RoleRepository.GetEmployees_RolesAsync(loginEmp.ID);

            foreach (var item in roles)
            {
                claimList.Add(new Claim(ClaimTypes.Role, item.RoleName));
            }


            //if(loginEmp.ID==1)
            //{
            //    claimList.Add(new Claim(ClaimTypes.Role, "管理员"));
            //}
            //else
            //{
            //    claimList.Add(new Claim(ClaimTypes.Role, "员工"));
            //}


            //创建一个jwt安全对象
            var jwtObj = new JwtSecurityToken(
                issuer: "www.zhangquque.com",  //发行人
                audience: "www.gaozijian.com", //签收者
                claims: claimList,
                signingCredentials: sig,
                expires: DateTime.Now.AddHours(2)
                );

            string token = new JwtSecurityTokenHandler().WriteToken(jwtObj);  //书写token

            //发送邮箱登录提醒
            EmailSendHelper.SendLoginEmail(loginEmp.Email, configOptions.EmailPassword);

            //计入登录日志
            await wrapperRepository.LogRepository.AddAsync(
                new Logs
            {
                Content    = $"{loginEmp.Name}在{DateTime.Now}上线",
                CreateTime = DateTime.Now,
                CreateID   = loginEmp.ID,
                CategoryID = 1
            }
                );

            await wrapperRepository.LogRepository.SaveAsync();

            return(Ok(new { token = token }));
        }