public IActionResult Area() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; ViewBag.username = claim.username; ViewBag.area = claim.area; return(View()); }
public ResponseResult <string> addArea([FromQuery] string token, string name, string abb) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(abb)) { return(ResponseResult <string> .Error("参数异常")); } SYS_AREA area = new SYS_AREA { NAME = name, ABBREVIATION = abb }; var b = SystemService.addArea(area, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Success("操作失败", "操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public ResponseResult <string> PostLogins(string username, string password) { if (!string.IsNullOrEmpty(username.Trim()) && !string.IsNullOrEmpty(password.Trim())) { try { string token = ""; password = MD5Utils.decode(password); var user = SystemService.AuthUser(username, password, connstr); if (user != null) { JwtUtils jwt = new JwtUtils(); JwtHeader header = new JwtHeader(); header.alg = AlgEnum.HS256; JwtClaim claim = new JwtClaim(); claim.isadmin = user.AREA == 0 ? true : false; claim.area = user.AREA; claim.uid = user.ID; claim.username = user.USERNAME; claim.exp = DateTime.Now.AddMinutes(30).ToBinary(); token = jwt.EncodingJwt(header, claim); return(ResponseResult <string> .Success(token, "登录成功")); } } catch (Exception ex) { Console.Write(ex.Message); return(ResponseResult <string> .Error("登录失败")); } } return(ResponseResult <string> .Error("登录失败")); }
public ResponseResult <string> editPwd([FromQuery] string token, string name, int area, string oldpwd, string newpwd) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { var user = SystemService.getUser(connstr).Where(u => u.USERNAME == name.Trim() && u.AREA == area && u.PASSWORD == MD5Utils.decode(oldpwd)).FirstOrDefault(); if (user == null) { return(ResponseResult <string> .Error("密码验证不通过")); } var PASSWORD = MD5Utils.decode(newpwd); var b = SystemService.editUserPwd(user.ID, PASSWORD, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Error("操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public ResponseResult <string> addRoom([FromQuery] string token, string name, int area, int status) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { if (string.IsNullOrEmpty(name)) { return(ResponseResult <string> .Error("参数异常")); } SYS_ROOMINFO room = new SYS_ROOMINFO { NAME = name, AREA = area, STATUS = status }; var b = SystemService.addRoom(room, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Success("操作失败", "操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public T GetClaim <T>(string jwt, JwtClaim claim) { if (jwt == null) { throw new UnprocessableException(); } string key = Enum.GetName(typeof(JwtClaim), claim); var handler = new JsonWebTokenHandler(); JsonWebToken jwtToken = handler.ReadJsonWebToken(jwt); string foundClaim = jwtToken.Claims? .FirstOrDefault(c => c.Type.Equals(key, StringComparison.OrdinalIgnoreCase))? .Value; if (typeof(T) == typeof(Guid)) { return((T)Convert.ChangeType(Guid.Parse(foundClaim), typeof(T), CultureInfo.InvariantCulture)); } if (typeof(T) == typeof(AccountRole)) { return((T)Convert.ChangeType(Enum.Parse <AccountRole>(foundClaim), typeof(T), CultureInfo.InvariantCulture)); } return(default);
public static TokenInfo GenerateToken(JwtClaim claim) { string jsonClaim = JsonConvert.SerializeObject(claim); var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, jsonClaim), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var credentials = new SigningCredentials( new SymmetricSecurityKey( Encoding.UTF8.GetBytes(configuration["SigningKey"])), SecurityAlgorithms.HmacSha256); var expirationDate = DateTime.UtcNow.Add(expirationTime); var token = new JwtSecurityToken ( issuer: configuration["Issuer"], audience: configuration["Audience"], claims: claims, expires: expirationDate, notBefore: DateTime.UtcNow, signingCredentials: credentials ); var tokenInfo = new TokenInfo() { Token = new JwtSecurityTokenHandler().WriteToken(token), ExpirationTime = expirationDate }; return(tokenInfo); }
public ResponseResult <string> editProgress([FromQuery] string token, string id, int progress) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { if (progress < 0 || progress > 100) { return(ResponseResult <string> .Error("输入异常")); } var b = ToDoService.editProgress(id, progress, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Error("操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public ResponseResult <string> addToDo([FromQuery] string token, string title, string content, string proirity) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { if (string.IsNullOrEmpty(proirity) || string.IsNullOrEmpty(title)) { return(ResponseResult <string> .Error("操作异常")); } SYS_TODOLIST area = new SYS_TODOLIST { ID = Guid.NewGuid().ToString(), TITLE = title, CONTENT = content, PRIORITY = int.Parse(proirity), CREATETIME = DateTime.Now, UID = claim.uid, PROGRESS = 0 }; var b = ToDoService.addToDo(area, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Success("操作失败", "操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public ResponseResult <string> addUser([FromQuery] string token, string username, int area, string password, string email) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password) || area == 0) { return(ResponseResult <string> .Error("参数异常")); } SYS_USER room = new SYS_USER { ID = Guid.NewGuid().ToString(), USERNAME = username, PASSWORD = MD5Utils.decode(password), AREA = area, EMAIL = email, UPDATETIME = DateTime.Now }; var b = SystemService.addUser(room, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Success("操作失败", "操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public ResponseResult <string> PostBook([FromQuery] string token, string meetname, string room, string day, string hour, int status) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { //判断会议室是否停用 bool isstop = SystemService.IsStop(room, connstr); if (!isstop) { var h = hour.Split('至'); var start_hh = h[0].Split(':'); var start_hor = start_hh[0]; var start_min = start_hh.Count() <= 1?"00": start_hh[1]; var end_hh = h[1].Split(':'); var end_hor = end_hh[0]; var end_min = end_hh.Count() <= 1 ? "00" : end_hh[1]; var starttime = DateTime.Parse(day + " " + start_hor + ":" + start_min); var endtime = DateTime.Parse(day + " " + end_hor + ":" + end_min); if (starttime <= DateTime.Now) { return(ResponseResult <string> .Success("你是要穿越吗?", "你是要穿越吗?")); } //判断时段是否可用 bool enable = SystemService.AuthTime(room, starttime, endtime, connstr); if (enable) { //入库 SYS_BOOKINFO book = new SYS_BOOKINFO { MEETNAME = meetname, ROOMID = room, STARTTIME = starttime, ENDTIME = endtime, STATUS = status, UID = claim.uid }; var b = SystemService.BookRoom(book, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Success("操作失败", "操作失败")); } } else { return(ResponseResult <string> .Success("时间冲突", "时间冲突")); } } else { return(ResponseResult <string> .Success("会议室已停用", "会议室已停用")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public IActionResult addArea() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; ViewBag.username = claim.username; ViewBag.area = claim.area; ViewBag.model = null; return(View("editArea")); }
public IActionResult editArea(int id) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; ViewBag.username = claim.username; ViewBag.area = claim.area; List <SYS_AREA> model = SystemService.getArea(connstr); var res = model.Where(m => m.ID == id).FirstOrDefault(); ViewBag.model = res; return(View()); }
/// <summary> /// Get claims of user. /// </summary> /// <returns>Claims.</returns> private JwtClaim GetUserClaims() { var claims = this.User.Claims; var jwtClaims = new JwtClaim { FromId = claims.Where(claim => claim.Type == "fromId").Select(claim => claim.Value).First(), ServiceUrl = claims.Where(claim => claim.Type == "serviceURL").Select(claim => claim.Value).First(), UserObjectIdentifer = claims.Where(claim => claim.Type == "userObjectIdentifer").Select(claim => claim.Value).First(), }; return(jwtClaims); }
public string getArea() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; List <SYS_AREA> model = SystemService.getArea(connstr); LayTableModel <List <SYS_AREA> > table = new LayTableModel <List <SYS_AREA> >(); table.message = "success"; table.code = 200; table.total = model.Count; table.rows = new Rows <List <SYS_AREA> >(); table.rows.item = new List <SYS_AREA>(); table.rows.item = model; return(JsonConvert.SerializeObject(table)); }
public async Task <IActionResult> CreateTemplate([FromBody] CreateTemplateCommand command) { try { string orgEmail = JwtClaim.GetEmail(User); UserTemplateDTO createdTemplate = await this._service.Create(orgEmail, command); return(Created("template/", createdTemplate._tid)); } catch (Exception e) { this._logger.LogError(e, e.Message); return(StatusCode(500)); } }
public IActionResult ShowJN(DateTime time) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; ViewBag.username = claim.username; ViewBag.area = claim.area; if (time == DateTime.MinValue || time == null) { time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); } List <ShowModel> showModels = getStatus(claim.area, time); ViewBag.model = showModels; ViewBag.actionname = "ShowJN"; ViewBag.time = time; return(View("Show")); }
public string getToDo() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; if (claim.area == 0) { claim.uid = ""; } List <ToDoModel> model = ToDoService.getToDo(claim.uid, connstr); LayTableModel <List <ToDoModel> > table = new LayTableModel <List <ToDoModel> >(); table.message = "success"; table.code = 200; table.total = model.Count; table.rows = new Rows <List <ToDoModel> >(); table.rows.item = new List <ToDoModel>(); table.rows.item = model; return(JsonConvert.SerializeObject(table)); }
/// <summary> /// Finds the claim in the expired jwt, allowed types are Guid, AccountRole and string /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jwt"></param> /// <param name="claim"></param> /// <returns>The requested claim in the specified extension</returns> public T GetClaim <T>(string jwt, JwtClaim claim) { if (jwt == null) { throw new UnprocessableException(); } string key = Enum.GetName(typeof(JwtClaim), claim); var handler = new JsonWebTokenHandler(); JsonWebToken jwtToken = handler.ReadJsonWebToken(jwt); string foundClaim = jwtToken.Claims? .FirstOrDefault(c => c.Type.Equals(key, StringComparison.OrdinalIgnoreCase))? .Value; if (string.IsNullOrEmpty(foundClaim)) { return(default);
public async Task <UserToken> Login(string username, string email, string password) { User user = new User(); Account account = null; if (username != null) { user = await _accountsRepo.GetUserByUsername(username); account = await _accountsRepo.GetAccountById(user.Id); } if (email != null) { account = await _accountsRepo.GetAccountByEmail(email); } if (account == null) { string errorMessage = username == null ? WRONG_EMAIL_MESSAGE : WRONG_USERNAME_MESSAGE; throw new ApiException(ErrorCode.BadRequest, errorMessage); } bool verified = PasswordHasher.Verify(account.Password, password); if (!verified) { string errorMessage = username == null ? WRONG_EMAIL_MESSAGE : WRONG_USERNAME_MESSAGE; throw new ApiException(ErrorCode.BadRequest, errorMessage); } var jwtClaim = new JwtClaim() { UserId = user.Id, Username = user.Username }; var tokenInfo = Authentication.GenerateToken(jwtClaim); return(new UserToken { User = user, TokenInfo = tokenInfo }); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var isDefined = false; var controllerActionDescriptor = filterContext.ActionDescriptor as ControllerActionDescriptor; if (controllerActionDescriptor != null) { isDefined = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) .Any(a => a.GetType().Equals(typeof(NoPermissionRequired))); } if (isDefined) { base.OnActionExecuting(filterContext); } //验签 string token = filterContext.HttpContext.Request.Query["token"].ToString(); if (string.IsNullOrEmpty(token)) { filterContext.Result = new RedirectResult("/System/Login"); } else { JwtUtils jwt = new JwtUtils(); JwtClaim claim = jwt.DecodingJwt(token); if (claim != null && DateTime.Now.ToBinary() <= claim.exp) { if (claim.exp <= DateTime.Now.ToBinary()) { //过期 filterContext.Result = new RedirectResult("/System/Login"); } filterContext.HttpContext.Items.Add("user", claim); base.OnActionExecuting(filterContext); } else { filterContext.Result = new RedirectResult("/System/Login"); } } }
public IActionResult Index() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; ViewBag.username = claim.username; ViewBag.area = claim.area; List <SelectListItem> items = new List <SelectListItem>(); var rooms = ToDoService.getPriority(connstr); foreach (var item in rooms) { items.Add(new SelectListItem { Text = item.NAME, Value = item.ID.ToString() }); } items.FirstOrDefault().Selected = true; ViewBag.Items = items; return(View()); }
public ResponseResult <string> completeToDo([FromQuery] string token, string id) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { var b = ToDoService.completeToDo(id, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Error("操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public IActionResult Book() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; ViewBag.username = claim.username; ViewBag.area = claim.area; //根据区域获取会议室信息 List <SelectListItem> items = new List <SelectListItem>(); var rooms = SystemService.GetRoomInfo(connstr).Where(r => r.AREA == claim.area); foreach (var item in rooms) { items.Add(new SelectListItem { Text = item.NAME, Value = item.ID.ToString() }); } items.FirstOrDefault().Selected = true; ViewBag.Items = items; return(View()); }
public async Task <UserToken> Register(RegistrationUser registrationUser) { User user = registrationUser.User; Account account = registrationUser.Account; bool usernameExists = await _accountsRepo.UsernameExistsAsync(user.Username); if (usernameExists) { throw new ApiException(ErrorCode.BadRequest, "Username exists"); } bool emailExists = await _accountsRepo.EmailExistsAsync(account.Email); if (emailExists) { throw new ApiException(ErrorCode.BadRequest, "Email exists"); } account.Password = PasswordHasher.Hash(account.Password); await _accountsRepo.CreateAccountAsync(account); user.Id = account.Id; await _accountsRepo.CreateUserAsync(user); var jwtClaim = new JwtClaim() { UserId = user.Id, Username = user.Username }; var tokenInfo = Authentication.GenerateToken(jwtClaim); return(new UserToken { User = user, TokenInfo = tokenInfo }); }
public ResponseResult <string> delBook([FromQuery] string token, int id) { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; try { if (id == 0) { return(ResponseResult <string> .Error("参数异常")); } var b = SystemService.delBook(id, connstr); if (b) { return(ResponseResult <string> .Success("操作成功", "操作成功")); } else { return(ResponseResult <string> .Success("操作失败", "操作失败")); } } catch (Exception ex) { return(ResponseResult <string> .Error("系统异常")); } }
public IActionResult editPwd() { claim = (JwtClaim)_accessor.HttpContext.Items["user"]; return(View()); }