コード例 #1
0
        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);
            }
        }
コード例 #2
0
        public async Task <MessageModel <dynamic> > TokenAssig([FromBody] LoginViewModel loginViewModel)
        {
            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);

                #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 = cheke.Item2;
                return(data);
            }
        }