예제 #1
0
        public async Task <IActionResult> UserLoginApi([FromBody] UserLoginMap userLogin)
        {
            CustomStatusCode code;

            var user = await _userRepository.UserLogin(userLogin.Account, userLogin.Password);

            if (user == null)
            {
                _logger.LogInformation("登陆失败");
                code = new CustomStatusCode
                {
                    Status  = "404",
                    Message = "账号或者密码错误"
                };
                return(StatusCode(404, code));
            }
            TokenModelJWT tokenModel = new TokenModelJWT
            {
                Id   = user.Id,
                Role = user.Role.ToString()
            };
            var jwtStr = _jwtHelper.IssueJWT(tokenModel);

            _logger.LogInformation($"用户 {user.Id}登陆成功");
            code = new CustomStatusCode
            {
                Status  = "200",
                Message = $"用户 {user.Id} 登陆成功",
                Data    = ("Bearer " + jwtStr)
            };
            return(StatusCode(200, code));
        }
예제 #2
0
        public IActionResult RetrievePasswordApi(string account)
        {
            CustomStatusCode code;
            var exit = _userRepository.RetrievePassword(account);

            if (exit == null)
            {
                _logger.LogInformation($"{account} 账号不存在");
                code = new CustomStatusCode
                {
                    Status  = "404",
                    Message = $"{account} 账号不存在"
                };
                return(StatusCode(404, code));
            }


            var           password = exit.Password;
            TokenModelJWT token    = new TokenModelJWT
            {
                Id   = exit.Id,
                Role = exit.Role.ToString()
            };
            var jwtStr = _jwtHelper.IssueJWT(token);

            _logger.LogInformation($"{account} 账号验证成功,返回密码与token");
            code = new CustomStatusCode
            {
                Status  = "200",
                Message = $"{account} 账号验证成功,返回密码与token",
                Data    = new { pwd = password, token = jwtStr }
            };
            return(StatusCode(200, code));
        }
예제 #3
0
        public async Task <object> GetJWTStr(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            //这里直接写死了

            var user = await sysUserInfoServices.GetUserRoleNameStr(name, pass);

            if (user != null)
            {
                TokenModelJWT tokenModel = new TokenModelJWT();
                tokenModel.Uid  = 1;
                tokenModel.Role = user;

                jwtStr = JwtHelper.IssueJWT(tokenModel);
                suc    = true;
            }
            else
            {
                jwtStr = "login fail!!!";
            }

            return(Ok(new
            {
                success = suc,
                token = jwtStr
            }));
        }
예제 #4
0
        public ActionResult <string> EXPORTYG()
        {
            var           context     = _accessor.HttpContext;
            var           tokenHeader = context.Request.Cookies["szhlcode"].ToString().Replace("Bearer ", "");
            TokenModelJWT tokenModel  = JwtHelper.SerializeJWT(tokenHeader);

            JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(10334, tokenModel.UserName);


            JObject JsonData  = new JObject();
            string  P1        = context.Request.Query["P1"].ToString();
            string  P2        = context.Request.Query["P2"].ToString();
            string  pagecount = context.Request.Query["pagecount"].ToString();

            JsonData.Add("P1", P1);
            JsonData.Add("P2", P2);
            JsonData.Add("pagecount", pagecount);

            new AuthManage().GETUSERBYCODENEWPAGE(JsonData, Model, P1, P2, UserInfo);

            DataTable dt = Model.Result;

            string       sqlCol   = "ID,UserOrder|序号,DeptName|部门,RoomCode|房间号,UserName|账号,UserRealName|姓名,Sex|性别,mobphone|手机,QQ|QQ,weixinCard|微信,mailbox|邮箱,telphone|座机,ROLENAME|职务,Usersign|职责,UserGW|岗位,IDCard|身份证,HomeAddress|家庭住址";
            DataTable    dtResult = dt.DelTableCol(sqlCol);
            HSSFWorkbook workbook = new HSSFWorkbook();

            workbook = CommonHelp.ExportToExcel(dtResult);
            var stream = new NPOIMemoryStream();

            workbook.Write(stream);
            stream.Flush();
            stream.Position = 0;
            return(File(stream, "application/ms-excel", string.Format("{0}.xls", "员工_导出文件_" + DateTime.Now.Ticks)));
        }
예제 #5
0
        public async Task <object> GetJWTToken(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;

            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            //这里直接写死了


            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass))
            {
                return(new JsonResult(new
                {
                    Status = false,
                    message = "用户名或密码不能为空"
                }));
            }

            TokenModelJWT tokenModel = new TokenModelJWT();

            tokenModel.Uid  = 1;
            tokenModel.Role = "Admin";

            jwtStr = JwtHelper.IssueJWT(tokenModel);
            suc    = true;


            return(Ok(new
            {
                success = suc,
                token = jwtStr
            }));
        }
예제 #6
0
        public async Task <IActionResult> Initialize()
        {
            SimpleMessage <UserInfoDto> message = new SimpleMessage <UserInfoDto>();

            try
            {
                //进行token验证
                TokenModelJWT tokenModel = TokenJwtAop.GetToken(HttpContext);
                //获取用户信息
                UserInfoDto userInfo = _context.UserInfo.Where(s => s.ID == tokenModel.id).Select(s => new UserInfoDto
                {
                    username     = s.UserName,
                    email        = s.Email,
                    bolgurl      = s.BlogUrl,
                    lovesentence = s.LoveSentence,
                    headurl      = s.HeadUrl,
                }).FirstOrDefault();


                message.data = userInfo;
            }
            catch (Exception ex)
            {
                message.InfoMessage(ex.Message);
            }

            return(Content(message.ToJson()));
        }
 public IActionResult GetJWTStr([FromBody] LoginViewModel loginViewModel)
 {
     if (ModelState.IsValid)
     {
         SysUser user = new SysUser(); //await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password);
         //判断用户名密码是否正确,如果不正确返回Token  !(loginViewModel.User=="avery"&& loginViewModel.Password=="123")
         if (user == null)
         {
             return(Json(new OperationResult(ResultType.Error, "账号或者密码错误")));
         }
         else
         {
             var           Ip         = HttpContext.GetClientIP();
             TokenModelJWT tokenModel = new TokenModelJWT()
             {
                 Uid  = user.Id,
                 Role = "Admin",
             };
             try
             {
                 string jwtstr = JwtHelper.IssueJWT(tokenModel);
                 return(Ok(new { token = jwtstr }));
             }
             catch (Exception ex)
             {
                 return(Json("" + ex.Message));
             }
         }
     }
     return(BadRequest());
 }
예제 #8
0
        public JsonResult RefreshToken([FromForm]  string token)
        {
            ResponseResult result = new ResponseResult();

            if (string.IsNullOrEmpty(token))
            {
                result.Code = ResponseResultMessageDefine.ParaError;
                result.Errors.Add(ResponseResultMessageDefine.ParaErrorMessage);
            }
            else
            {
                TokenModelJWT tokenModel = JwtHelper.DerializeJWT(token);

                if (tokenModel.Uid > 0 && tokenModel.ExpDate > new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds())
                {
                    result.Data = JwtHelper.SerializeJWT(tokenModel);
                }
                else
                {
                    result.Code = ResponseResultMessageDefine.OpLost;
                    result.Errors.Add(ResponseResultMessageDefine.OpLostMessage);
                }
            }

            return(Json(result));
        }
예제 #9
0
        public async Task <object> GetJWTStrForNuxt(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;

            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            //这里直接写死了
            if (name == "admins" && pass == "admins")
            {
                TokenModelJWT tokenModel = new TokenModelJWT();
                tokenModel.Uid  = 1;
                tokenModel.Role = "Admin";

                jwtStr = JwtHelper.IssueJWT(tokenModel);
                suc    = true;
            }
            else
            {
                jwtStr = "login fail!!!";
            }
            var result = new
            {
                data = new { success = suc, token = jwtStr }
            };
            var data = new { success = suc, data = new { success = suc, token = jwtStr } };

            return(data);
        }
        public ActionResult <ResponseModel <LoginModel> > GetJWTToken(string acc, string pws)
        {
            try
            {
                var    _user  = HttpContext.User;
                string jwtStr = string.Empty;
                bool   suc    = false;

                string tempToken = $"{acc}|{pws}|{DateTime.Now}";
                this.TokenReflash(tempToken);



                //TODO 後面串聯DB取得帳號驗證資料與使用者相關資料

                #region 範例(模擬資料庫)
                if (string.IsNullOrEmpty(acc) || string.IsNullOrEmpty(pws))
                {
                    return(new JsonResult(new
                    {
                        Status = false,
                        message = "密碼不可為空值"
                    }));
                }

                TokenModelJWT tokenModel = new TokenModelJWT();
                tokenModel.Uid = 1;
                if (acc.ToUpper() != "TEST")
                {
                    tokenModel.Role = "Client";
                }
                else
                {
                    tokenModel.Role = "Admin";
                }
                tokenModel.Temp = tempToken;

                jwtStr = JwtHelper.IssueJWT(tokenModel);
                suc    = true;
                #endregion
                return(new ResponseModel <LoginModel>()
                {
                    Message = "", StatsuCode = 200, Data = new LoginModel()
                    {
                        success = suc, token = jwtStr
                    }
                });
            }
            catch (Exception ex)
            {
                return(new ResponseModel <LoginModel>()
                {
                    Message = "發生不可知錯誤", StatsuCode = 200
                });
            }
        }
예제 #11
0
        public JsonResult Login(long id = 1, string sub = "Admin")
        {
            TokenModelJWT tokenModel = new TokenModelJWT();

            tokenModel.Uid  = id;
            tokenModel.Role = sub;
            string jwtStr = JwtHelper.IssueJWT(tokenModel);

            return(Json(jwtStr));
        }
예제 #12
0
        public JsonResult GetJWTStr(long id = 1, string sub = "Admin")
        {
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            TokenModelJWT tokenModelJWT = new TokenModelJWT();

            tokenModelJWT.Id   = id;
            tokenModelJWT.Role = sub;
            string jwtStr = JwtHelper.IssueJWT(tokenModelJWT);

            return(Json(jwtStr));
        }
예제 #13
0
        public JsonResult GetJWTStr(long id = 1, string sub = "Admin")
        {
            var tokenModel = new TokenModelJWT();

            tokenModel.Uid  = id;
            tokenModel.Role = sub;

            var jwtStr = JwtHelper.IssueJWT(tokenModel);

            return(new JsonResult(jwtStr));
        }
예제 #14
0
        public async Task <IActionResult> Register(UserRegisterDto dto)
        {
            SimpleMessage <string> message = new SimpleMessage <string>();

            try
            {
                if (dto == null)
                {
                    return(NotFound());
                }

                UserInfo userInfo = await _context.UserInfo.Where(s => s.Email == dto.Email).AsNoTracking().FirstOrDefaultAsync();

                if (userInfo != null)
                {
                    throw new Exception("邮箱已经注册");
                }
                if (userInfo != null && userInfo.UserName == dto.UserName)
                {
                    throw new Exception("用户名被使用");
                }

                //添加
                userInfo              = new UserInfo();
                userInfo.UserName     = dto.UserName;
                userInfo.Email        = dto.Email;
                userInfo.PassWord     = dto.PassWord;
                userInfo.PassKey      = Guid.NewGuid().ToString();
                userInfo.PassWord     = Encryption.MD5Hash(dto.PassWord + "." + userInfo.PassKey);
                userInfo.BlogUrl      = dto.BlogUrl;
                userInfo.LoveSentence = dto.LoveSentence;
                userInfo.HeadUrl      = dto.HeadUrl;
                userInfo.CreateTime   = DateTime.Now;
                userInfo.LastErrTime  = DateTime.Now;
                userInfo.Role         = "用户";

                //注册
                _context.Add(userInfo);
                await _context.SaveChangesAsync();

                //添加生成token
                TokenModelJWT tokenModel = new TokenModelJWT();
                tokenModel.id   = userInfo.ID;
                tokenModel.Role = userInfo.Role;
                tokenModel.Work = "用户";
                message.data    = JwtHelper.IssueJWT(tokenModel);
            }
            catch (Exception ex)
            {
                message.InfoMessage(ex.Message);
            }
            return(Content(message.ToJson()));
        }
예제 #15
0
        public void GetJsonp(string callBack, long id = 1, string sub = "Admin", int expiresSliding = 30, int expiresAbsoulute = 30)
        {
            TokenModelJWT tokenModelJWT = new TokenModelJWT();

            tokenModelJWT.Id   = id;
            tokenModelJWT.Role = sub;
            string jwtStr   = JwtHelper.IssueJWT(tokenModelJWT);
            string response = string.Format("\"value\":\"{0}\"", jwtStr);
            string call     = callBack + "({" + response + "})";

            Response.WriteAsync(call);
        }
예제 #16
0
        public ActionResult <string> GetJWTStr(long id = 1, string sub = "Admin")
        {
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            TokenModelJWT tokenModel = new TokenModelJWT();

            tokenModel.Uid  = id;
            tokenModel.Role = sub;

            string jwtStr = JwtHelper.IssueJWT(tokenModel);

            return(jwtStr);
        }
예제 #17
0
        public JsonResult GetJWTStr(long id, string sub)
        {
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            TokenModelJWT tokenModel = new TokenModelJWT();

            tokenModel.Uid  = id;
            tokenModel.Role = sub;

            // 获取token
            string jwtStr = JwtHelper.IssueJWT(tokenModel);

            return(Json(jwtStr));
        }
예제 #18
0
        public JsonResult GetJwtStr(long id = 1, string sub = "Admin")
        {
            TokenModelJWT tm = new TokenModelJWT
            {
                Uid  = id,
                Role = sub
            };

            var jwtStr = JwtHelper.IssueJWT(tm);

            var result = Json(jwtStr);

            return(result);
        }
예제 #19
0
        public async Task <object> GetJWTToken(string name, string pass)
        {
            string jwtStr = string.Empty;
            bool   suc    = false;

            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            //这里直接写死了


            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass))
            {
                return(new JsonResult(new
                {
                    Status = false,
                    message = "用户名或密码不能为空"
                }));
            }
            var user = new IdentityUser {
                UserName = name, Id = Guid.NewGuid().ToString()
            };
            var count = await _userManager.FindByIdAsync(user.Id);

            if (count == null)
            {
                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    await _signManager.SignInAsync(user, false);

                    TokenModelJWT tokenModel = new TokenModelJWT();
                    tokenModel.Uid  = long.Parse(user.Id);
                    tokenModel.Role = "Admin";
                    jwtStr          = JWTHelper.IssueJWT(tokenModel);
                    suc             = true;
                    return(Ok(new
                    {
                        success = suc,
                        token = jwtStr
                    }));
                }
            }

            return(new JsonResult(new
            {
                Status = false,
                message = "用户已经存在"
            }));
        }
        [AllowAnonymous]//对获取token得方法加允许匿名标注//不受授权控制,任何人都可访问
        public async Task <string> Token([FromBody] LoginViewModel loginViewModel)
        {
            if (ModelState.IsValid)
            {
                SysUser user = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password);

                //判断用户名密码是否正确,如果不正确返回Token  !(loginViewModel.User=="avery"&& loginViewModel.Password=="123")
                if (user == null)
                {
                    return("账号或者密码错误");
                }
                else
                {
                    #region MyRegion
                    var Ip = HttpContext.GetClientIP();
                    //var claim = new Claim[]
                    //{
                    //    new Claim(ClaimTypes.Name,user.Account),
                    //    new Claim(ClaimTypes.Role,user.Account),
                    //};
                    ////设置对称秘钥
                    //var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtSettings.SecretKey));
                    ////生成签名证书(秘钥,加密算法)
                    //var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                    ////生成token  [注意]需要nuget添加Microsoft.AspNetCore.Authentication.JwtBearer包,并引用System.IdentityModel.Tokens.Jwt命名空间
                    //var token = new JwtSecurityToken(_jwtSettings.Issuer, _jwtSettings.Audience, claim, DateTime.Now, DateTime.Now.AddDays(1), creds);
                    #endregion
                    TokenModelJWT tokenModel = new TokenModelJWT()
                    {
                        Uid  = user.Id,
                        Role = "Admin",
                    };
                    var token = JwtHelper.IssueJWT(tokenModel);
                    try
                    {
                        //var ss= DateTime.Now;
                        //_redisCacheManager.Set("Id", new { Id = 12 },ss.TimeOfDay);
                        //_log.Add("创建TOken", "用户登陆", Ip,EnumTypes.其他分类);
                        return(token);
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
            return("账号或者密码错误");
        }
예제 #21
0
        /// <summary>
        /// 颁发JWT字符串
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static string IssueJwt(TokenModelJWT model)
        {
            var dateTime = DateTime.UtcNow;
            var claims   = new Claim[]
            {
                new Claim(JwtRegisteredClaimNames.Jti, model.Uid.ToString()),
                new Claim("Role", model.Role),
                new Claim(JwtRegisteredClaimNames.Iat, dateTime.ToString(), ClaimValueTypes.Integer64)
            };
            var key       = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey));
            var creds     = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var jwt       = new JwtSecurityToken(issuer: "Blog.Core", claims: claims, expires: dateTime.AddHours(2), signingCredentials: creds);
            var jwtHander = new JwtSecurityTokenHandler();
            var token     = jwtHander.WriteToken(jwt);

            return(token);
        }
예제 #22
0
        public JsonResult GetJWTStr(Guid id, Guid gId, string nickName = "匿名", string sub = "Client")
        {
            //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作
            TokenModelJWT tokenModel = new TokenModelJWT();

            tokenModel.Uid  = id;
            tokenModel.Gid  = gId;
            tokenModel.Role = sub;

            string jwtStr = JwtHelper.IssueJWT(tokenModel);

            return(Json(new
            {
                Username = nickName,
                Token = jwtStr
            }));
        }
예제 #23
0
        public async Task <object> GetJWTToken(string acc, string pws)
        {
            var    _user  = HttpContext.User;
            string jwtStr = string.Empty;
            bool   suc    = false;

            string tempToken = $"{acc}|{pws}|{DateTime.Now}";

            this.TokenReflash(tempToken);



            //TODO 後面串聯DB取得帳號驗證資料與使用者相關資料

            if (string.IsNullOrEmpty(acc) || string.IsNullOrEmpty(pws))
            {
                return(new JsonResult(new
                {
                    Status = false,
                    message = "密碼不可為空值"
                }));
            }

            TokenModelJWT tokenModel = new TokenModelJWT();

            tokenModel.Uid = 1;
            if (acc.ToUpper() != "TEST")
            {
                tokenModel.Role = "Client";
            }
            else
            {
                tokenModel.Role = "Admin";
            }
            tokenModel.Temp = tempToken;

            jwtStr = JwtHelper.IssueJWT(tokenModel);
            suc    = true;


            return(Ok(new
            {
                success = suc,
                token = jwtStr
            }));
        }
예제 #24
0
        public ActionResult <string> ExeAction(string Action, Object PostData)
        {
            Model.Action = Action;
            var           context     = _accessor.HttpContext;
            var           tokenHeader = context.Request.Headers["Authorization"].ToString().Replace("Bearer ", "");
            TokenModelJWT tokenModel  = JwtHelper.SerializeJWT(tokenHeader);

            if (new DateTimeOffset(DateTime.Now.AddMinutes(5)).ToUnixTimeSeconds() > tokenModel.Exp)
            {
                //需要更新Token
                Model.uptoken = JwtHelper.CreateJWT(tokenModel.UserName, "Admin");
            }
            JH_Auth_UserB.UserInfo UserInfo = CacheHelp.Get(tokenModel.UserName) as JH_Auth_UserB.UserInfo;
            if (UserInfo == null)
            {
                UserInfo = new JH_Auth_UserB().GetUserInfo(10334, tokenModel.UserName);
                CacheHelp.Set(tokenModel.UserName, UserInfo);
            }
            try
            {
                JObject JsonData = JObject.FromObject(PostData);
                string  P1       = JsonData["P1"] == null ? "" : JsonData["P1"].ToString();
                string  P2       = JsonData["P2"] == null ? "" : JsonData["P2"].ToString();


                // 1.Load(命名空间名称),GetType(命名空间.类名)
                Type type = Assembly.Load("QJY.API").GetType("QJY.API." + Action.Split('_')[0].ToUpper() + "Manage");
                //2.GetMethod(需要调用的方法名称)
                MethodInfo method = type.GetMethod(Action.Split('_')[1].ToUpper());
                // 3.调用的实例化方法(非静态方法)需要创建类型的一个实例
                object obj = Activator.CreateInstance(type);
                //4.方法需要传入的参数
                object[] parameters = new object[] { JsonData, Model, P1, P2, UserInfo };
                method.Invoke(obj, parameters);
                new JH_Auth_LogB().InsertLog(Model.Action, "--调用接口", "", UserInfo.User.UserName, UserInfo.User.UserRealName, UserInfo.QYinfo.ComId, "");
            }
            catch (Exception ex)
            {
                Model.ErrorMsg = Action + "接口调用失败,请检查日志";
                Model.Result   = ex.ToString();
                new JH_Auth_LogB().InsertLog(Action, Model.ErrorMsg + ex.StackTrace.ToString(), ex.ToString(), tokenModel.UserName, "", 0, "");
            }

            return(ControHelp.CovJson(Model));
        }
예제 #25
0
        public ActionResult <string> WXINIT()
        {
            try
            {
                var context = _accessor.HttpContext;
                #region 获取Code
                Model.ErrorMsg = "";
                string        P1         = context.Request.Query["P1"].ToString();
                string        P2         = context.Request.Query["P2"].ToString();
                string        szhlcode   = context.Request.Query["szhlcode"].ToString();
                TokenModelJWT tokenModel = JwtHelper.SerializeJWT(szhlcode);
                if (tokenModel.UserName == null)
                {
                    Model.ErrorMsg = "NOCODE";
                }
                else
                {
                    JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(10334, tokenModel.UserName);
                    DataTable dtUsers = new JH_Auth_UserB().GetDTByCommand(" SELECT UserName,UserRealName,mobphone FROM JH_Auth_User where ComId='" + UserInfo.User.ComId + "'");
                    //获取选择用户需要的HTML和转化用户名需要的json数据
                    Model.Result = dtUsers;
                    JH_Auth_Common url = new JH_Auth_CommonB().GetEntity(p => p.ModelCode == P1 && p.MenuCode == P2);
                    if (url != null)
                    {
                        Model.Result1 = url.Url1;
                    }
                    Model.Result2 = UserInfo.User.UserName + "," + UserInfo.User.UserRealName + "," + UserInfo.User.BranchCode + "," + UserInfo.BranchInfo.DeptName;
                    Model.Result3 = UserInfo.QYinfo.FileServerUrl;
                    Model.Result4 = UserInfo.QYinfo.QYCode;
                }


                #endregion
            }
            catch (Exception ex)
            {
                Model.ErrorMsg = "WXINIT接口调用失败,请检查日志";
                Model.Result   = ex.ToString();
                CommonHelp.WriteLOG(ex.ToString());
            }
            return(ControHelp.CovJson(Model));
        }
예제 #26
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public Task Invoke(HttpContext context)
        {
            //检测是否包含'Authorization'请求头
            if (!context.Request.Headers.ContainsKey("Authorization"))
            {
                return(_next(context));
            }

            var           token = context.Request.Headers["Authorization"].ToString();
            TokenModelJWT tm    = JwtHelper.SerializeJWT(token);//序列化token,获取授权

            var claims = new List <Claim>();
            var claim  = new Claim(ClaimTypes.Role, tm.Role);

            claims.Add(claim);
            var identity  = new ClaimsIdentity(claims);
            var principal = new ClaimsPrincipal(identity);

            return(_next(context));
        }
예제 #27
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        public Task Invoke(HttpContext httpContext)
        {
            //检测是否包含Authorization请求头
            if (!httpContext.Request.Headers.ContainsKey("Authorization"))
            {
                return(_next(httpContext));
            }
            var           tokenHeader = httpContext.Request.Headers["Authorization"].ToString();
            TokenModelJWT tm          = JwtHelper.SerializeJWT(tokenHeader);
            //授权
            var claimList = new List <Claim>();
            var claim     = new Claim(ClaimTypes.Role, tm.Role);

            claimList.Add(claim);
            var identity  = new ClaimsIdentity(claimList);
            var principal = new ClaimsPrincipal(identity);

            httpContext.User = principal;
            return(_next(httpContext));
        }
예제 #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        public Task Invoke(HttpContext httpContext)
        {
            PreProceed(httpContext);


            //检测是否包含'Authorization'请求头
            if (!httpContext.Request.Headers.ContainsKey("Authorization"))
            {
                PostProceed(httpContext);

                return(_next(httpContext));
            }
            //var tokenHeader = httpContext.Request.Headers["Authorization"].ToString();
            var tokenHeader = httpContext.Request.Headers["Authorization"].ToString().Replace("Bearer ", "");

            try
            {
                if (tokenHeader.Length >= 128)
                {
                    TokenModelJWT tm = JWTHelper.SerializeJWT(tokenHeader);

                    //授权
                    var claimList = new List <Claim>();
                    var claim     = new Claim(ClaimTypes.Role, tm.Role);
                    claimList.Add(claim);
                    var identity  = new ClaimsIdentity(claimList);
                    var principal = new ClaimsPrincipal(identity);
                    httpContext.User = principal;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"{DateTime.Now} middleware wrong:{e.Message}");
            }


            PostProceed(httpContext);


            return(_next(httpContext));
        }
예제 #29
0
 public ActionResult <string> ISEXIST()
 {
     try
     {
         var context = _accessor.HttpContext;
         Model.ErrorMsg = "获取Code错误,请重试";
         string        szhlcode   = context.Request.Query["szhlcode"].ToString();
         TokenModelJWT tokenModel = JwtHelper.SerializeJWT(szhlcode);
         if (tokenModel.UserName == null)
         {
             Model.Result = "NOCODE";
         }
     }
     catch (Exception ex)
     {
         Model.ErrorMsg = "ISEXIST接口调用失败,请检查日志";
         Model.Result   = ex.ToString();
         CommonHelp.WriteLOG(ex.ToString());
     }
     return(ControHelp.CovJson(Model));
 }
예제 #30
0
        public async Task <IActionResult> Login(UserLoginDto dto)
        {
            //dto = new UserLoginDto { Email = "*****@*****.**", PassWord = "******" };
            SimpleMessage <string> message = new SimpleMessage <string>();

            try
            {
                if (dto == null)
                {
                    return(NotFound());
                }
                //找到邮箱
                UserInfo student = await _context.UserInfo.Where(s => s.Email == dto.Email).AsNoTracking()
                                   .FirstOrDefaultAsync();

                if (student == null)
                {
                    throw new Exception("未查找到用户信息");
                }

                //匹配密码
                if (student.PassWord != Encryption.MD5Hash(dto.PassWord + "." + student.PassKey))
                {
                    throw new Exception("用户名密码错误");
                }

                //添加生成token
                TokenModelJWT tokenModel = new TokenModelJWT();
                tokenModel.id   = student.ID;
                tokenModel.Role = student.Role;
                tokenModel.Work = "人员";

                message.data = JwtHelper.IssueJWT(tokenModel);
            }
            catch (Exception ex)
            {
                message.InfoMessage(ex.Message);
            }
            return(Content(message.ToJson()));
        }