public async Task <MessageModel <dynamic> > TokenAssig([FromBody] LoginViewModel loginViewModel)
        {
            var FromMailAddres = Appsettings.app(new string[] { "FromMailConfig", "FromMailAddres" });
            var FromMailPwd    = Appsettings.app(new string[] { "FromMailConfig", "FromMailPwd" });
            var ToMail         = Appsettings.app(new string[] { "FromMailConfig", "ToMail" });
            //await SendEmail.SendMailAvailableAsync(FromMailAddres, FromMailPwd, ToMail, $"{ DateTime.Now.ToString("yyyy-MM-dd")}Redis超出限制错误", "测试发送邮件抄送功能");//new string[] { "*****@*****.**" }
            var data  = new MessageModel <dynamic>();
            var cheke = loginViewModel.CheckModel();

            if (cheke.Item1)
            {
                loginViewModel.Password = loginViewModel.Password.ToMD5();
                var Ip = HttpContext.GetClientIP();
                //await Console.Out.WriteAsync($"IP为【{Ip}】的客户机访问");
                SysUser Info = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password);

                if (Info == null)
                {
                    data.msg = "账号或者密码错误";
                    return(data);
                }
                else
                {
                    try
                    {
                        var RoleName = await _userserver.GetUserRoleByUserId(Info.Id);

                        var claims = new List <Claim>
                        {
                            new Claim(ClaimTypes.Name, Info.Name),                                                                      //设置用户名称
                            new Claim(JwtRegisteredClaimNames.Jti, Info.Id.ToString()),                                                 //设置用户ID
                            new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()), //设置过期时间
                            new Claim("Id", Info.Id.ToString()),
                            new Claim("userName", Info.Name)
                        };
                        claims.AddRange(RoleName.Split(',').Select(x => new Claim(ClaimTypes.Role, x))); //将用户角色填充到claims中
                        var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);       //用户标识
                        identity.AddClaims(claims);
                        var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement);
                        data.response = token;
                        data.msg      = "Token获取成功";
                        data.success  = true;
                        return(data);
                    }
                    catch (Exception ex)
                    {
                        data.msg = "获取角色信息失败" + ex.Message;
                        return(data);
                    }
                }
            }
            else
            {
                data.msg = cheke.Item2;
                return(data);
            }
        }
Esempio n. 2
0
        public async Task <MessageModel <dynamic> > TokenAssig([FromBody] LoginViewModel loginViewModel)
        {
            var data = new MessageModel <dynamic>();

            if (ModelState.IsValid)
            {
                loginViewModel.Password = loginViewModel.Password.ToMD5();
                SysUser Info = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password);

                await _schedulerCenter.AddScheduleJobAsync(new SysSchedule
                {
                    Name           = "test1",
                    JobGroup       = "test1group",
                    AssemblyName   = "Uwl.QuartzNet.JobCenter",
                    ClassName      = "Simple",
                    IntervalSecond = 5,
                });

                //_rabbitMQ.SendData("hello", Info);
                if (Info == null)
                {
                    data.msg = "账号或者密码错误";
                    return(data);
                }
                else
                {
                    try
                    {
                        //_schedulerCenter.AddScheduleJobAsync<SysSchedule>(new SysSchedule());
                        var RoleName = await _userserver.GetUserRoleByUserId(Info.Id);

                        var claims = new List <Claim>
                        {
                            new Claim(ClaimTypes.Name, Info.Name),                                                                      //设置用户名称
                            new Claim(JwtRegisteredClaimNames.Jti, Info.Id.ToString()),                                                 //设置用户ID
                            new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()), //设置过期时间
                        };
                        claims.AddRange(RoleName.Split(',').Select(x => new Claim(ClaimTypes.Role, x)));                                //将用户角色填充到claims中
                        //用户标识
                        var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
                        identity.AddClaims(claims);
                        var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement);
                        data.response = token;
                        data.msg      = "Token获取成功";
                        data.success  = true;
                        return(data);
                    }
                    catch (Exception ex)
                    {
                        data.msg = "获取角色信息失败" + ex.Message;
                        return(data);
                    }
                }
            }
            data.msg = "账号或者密码错误";
            return(data);
        }
Esempio n. 3
0
        public async Task <MessageModel <dynamic> > TokenAssig([FromBody] LoginViewModel loginViewModel)
        {
            var data = new MessageModel <dynamic>();

            try
            {
                if (ModelState.IsValid)
                {
                    loginViewModel.Password = loginViewModel.Password.ToMD5();
                    var Ip = HttpContext.GetClientIP();
                    await Console.Out.WriteLineAsync(string.Format("客户端请求IP:{0}", Ip));

                    SysUser Info = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password);

                    #region    QuartzNet定时任务
                    //await _schedulerCenter.AddScheduleJobAsync(new SysSchedule
                    //{
                    //    Name = "test1",
                    //    JobGroup = "test1group",
                    //    AssemblyName = "Uwl.QuartzNet.JobCenter",
                    //    ClassName = "Simple",
                    //    RunTimes = 0,
                    //    IntervalSecond =4,
                    //});
                    //await _schedulerCenter.AddScheduleJobAsync(new SysSchedule
                    //{
                    //    Name = "testSimpleTwo",
                    //    JobGroup = "test1group",
                    //    AssemblyName = "Uwl.QuartzNet.JobCenter",
                    //    ClassName = "Simple",
                    //    RunTimes = 0,
                    //    IntervalSecond = 9,
                    //});
                    //await _schedulerCenter.AddScheduleJobAsync(new SysSchedule
                    //{
                    //    Name = "testSimpleThree",
                    //    JobGroup = "test1group",
                    //    AssemblyName = "Uwl.QuartzNet.JobCenter",
                    //    ClassName = "Simple",
                    //    RunTimes = 0,
                    //    IntervalSecond = 5,
                    //});
                    //_rabbitMQ.SendData("hello", Info);
                    #endregion
                    if (Info == null)
                    {
                        data.msg = "账号或者密码错误";
                        return(data);
                    }
                    else
                    {
                        try
                        {
                            //_schedulerCenter.AddScheduleJobAsync<SysSchedule>(new SysSchedule());
                            var RoleName = await _userserver.GetUserRoleByUserId(Info.Id);

                            var claims = new List <Claim>
                            {
                                new Claim(ClaimTypes.Name, Info.Name),                                                                      //设置用户名称
                                new Claim(JwtRegisteredClaimNames.Jti, Info.Id.ToString()),                                                 //设置用户ID
                                new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()), //设置过期时间
                                new Claim("Id", Info.Id.ToString()),
                                new Claim("userName", Info.Name)
                            };
                            claims.AddRange(RoleName.Split(',').Select(x => new Claim(ClaimTypes.Role, x))); //将用户角色填充到claims中
                            var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);       //用户标识
                            identity.AddClaims(claims);
                            var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement);
                            data.response = token;
                            data.msg      = "Token获取成功";
                            data.success  = true;
                            return(data);
                        }
                        catch (Exception ex)
                        {
                            data.msg = "获取角色信息失败" + ex.Message;
                            return(data);
                        }
                    }
                }
                else
                {
                    data.msg = "获取角色信息失败";
                    return(data);
                }
            }
            catch (Exception ex)
            {
                data.msg = "获取角色信息失败" + ex.Message;
                return(data);
            }
        }