From 0fb0f17319ecf71d66b96a6acfd07f754be9443e Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 24 十月 2024 13:44:38 +0800
Subject: [PATCH] WCS添加穿梭车信息表,修改任务信息表
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs | 129 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 129 insertions(+), 0 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
new file mode 100644
index 0000000..1bf7f75
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/HttpContextUser/AspNetUser.cs"
@@ -0,0 +1,129 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.IdentityModel.Tokens.Jwt;
+using System.Linq;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Authorization;
+using WIDESEA_Core.Caches;
+using WIDESEA_Core.Const;
+using WIDESEA_Core.DB;
+using WIDESEA_Core.Helper;
+using WIDESEA_Core.Seed;
+using ICacheService = WIDESEA_Core.Caches.ICacheService;
+
+namespace WIDESEA_Core.HttpContextUser
+{
+ public class AspNetUser : IUser
+ {
+ private readonly IHttpContextAccessor _accessor;
+ private readonly ICacheService _cacheService;
+ //private readonly ILogger<AspNetUser> _logger;
+
+ public AspNetUser(IHttpContextAccessor accessor, ICacheService cacheService)
+ {
+ _accessor = accessor;
+ _cacheService = cacheService;
+ /*_logger = logger;*/
+ }
+
+ public string UserName => GetUserInfoFromToken(ClaimTypes.Name).FirstOrDefault() ?? "";
+
+ public int UserId => GetClaimValueByType(JwtRegisteredClaimNames.Jti) == null ? 0 : GetClaimValueByType(JwtRegisteredClaimNames.Jti).FirstOrDefault()?.ObjToInt() ?? 0;
+
+ public long TenantId => GetUserInfoFromToken(nameof(TenantId)).FirstOrDefault()?.ObjToLong() ?? -1;
+
+ public int RoleId => GetUserInfoFromToken(ClaimTypes.Role).FirstOrDefault()?.ObjToInt() ?? 0;
+
+ public string Token => GetToken();
+
+ public int MenuType => (_accessor.HttpContext?.Request.Headers.ContainsKey("uniapp") ?? false) ? 1 : 0;
+
+ public bool IsAuthenticated()
+ {
+ return _accessor.HttpContext?.User?.Identity?.IsAuthenticated ?? false;
+ }
+
+ public string GetToken()
+ {
+ string token = _cacheService.Get(UserId.ToString());
+ if (!string.IsNullOrEmpty(token)) { return token; }
+ return string.Empty;
+ //return _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", "") ?? "";
+ }
+
+ public void UpdateToke(string token)
+ {
+ _cacheService.AddOrUpdate(UserId.ToString(), token);
+ }
+
+ public bool IsSuperAdmin => IsRoleIdSuperAdmin(RoleId);
+
+ public List<string> GetUserInfoFromToken(string ClaimType)
+ {
+ var jwtHandler = new JwtSecurityTokenHandler();
+ var token = "";
+
+ token = GetToken();
+ // token鏍¢獙
+ if (token.IsNotEmptyOrNull() && jwtHandler.CanReadToken(token))
+ {
+ JwtSecurityToken jwtToken = jwtHandler.ReadJwtToken(token);
+
+ return (from item in jwtToken.Claims
+ where item.Type == ClaimType
+ select item.Value).ToList();
+ }
+
+ return new List<string>() { };
+ }
+
+ public IEnumerable<Claim> GetClaimsIdentity()
+ {
+ if (_accessor.HttpContext != null)
+ {
+ var claims = _accessor.HttpContext.User.Claims.ToList();
+ var headers = _accessor.HttpContext.Request.Headers;
+ foreach (var header in headers)
+ {
+ claims.Add(new Claim(header.Key, header.Value));
+ }
+
+ return claims;
+ }
+ return ArraySegment<Claim>.Empty;
+ }
+
+ public List<string> GetClaimValueByType(string ClaimType)
+ {
+ return (from item in GetClaimsIdentity()
+ where item.Type == ClaimType
+ select item.Value).ToList();
+ }
+
+ public bool IsRoleIdSuperAdmin(int roleId)
+ {
+ return roleId == 1;
+ }
+ }
+
+ public class UserInfo
+ {
+ public long TenantId { get; set; }
+
+ public int RoleId { get; set; }
+
+ public string UserName { get; set; }
+
+ public int UserId { get; set; }
+
+ public string UserTrueName { get; set; }
+
+ public string HeadImageUrl { get; set; }
+ }
+}
--
Gitblit v1.9.3