1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- using System.Collections.Generic;
- using TEAMModelOS.SDK.Extension.JwtAuth.JwtHelper;
- using TEAMModelOS.SDK.Extension.JwtAuth.Models;
- using TEAMModelOS.SDK.Context.Constant.Common;
- using System.Security.Claims;
- using TEAMModelOS.Service.Models;
- using TEAMModelOS.SDK.Helper.Security.ShaHash;
- using System.IdentityModel.Tokens.Jwt;
- using Microsoft.IdentityModel.Tokens;
- using System.Text;
- using System;
- using System.Diagnostics;
- namespace TEAMModelOS.Controllers
- {
- public class BaseController : Controller
- {
- public List<string> GetLoginUser(string claimType)
- {
- var tokenHeader = "";
- HttpRequest request = HttpContext.Request;
- if (request.Headers.ContainsKey(Constants.AUTHORIZATION))
- {
- tokenHeader = request.Headers[Constants.AUTHORIZATION];
- //tokenHeader = tokenHeader.ToString().Substring("Bearer ".Length).Trim();
- tokenHeader = tokenHeader.Replace("Bearer ", "");
- }
- if (request.Query.ContainsKey(Constants.ACCESS_TOKEN))
- {
- tokenHeader = request.Query[Constants.ACCESS_TOKEN];
- tokenHeader = tokenHeader.Trim();
- }
- if (string.IsNullOrEmpty(tokenHeader))
- {
- return null;
- }
- ClaimModel claimModel = JwtHelper.SerializeJWT(tokenHeader);
- claimModel.Claim.TryGetValue(claimType, out var claimValue);
- List<string> claimValues = new List<string>();
- foreach (Claim claim in claimModel.Claims)
- {
- if (claim.Type.Equals(claimType))
- {
- claimValues.Add(claim.Value);
- }
- }
- return claimValues;
- }
- public static bool ValidateIdToken(string token, string salt)
- {
- try
- {
- var handler = new JwtSecurityTokenHandler();
- var validationParameters = new TokenValidationParameters
- {
- RequireExpirationTime = true,
- ValidateIssuer = false,
- ValidateAudience = false,
- IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(salt)),
- ValidateLifetime = false,
- //LifetimeValidator = LifetimeValidator,
- ClockSkew = TimeSpan.Zero
- };
- ClaimsPrincipal principal = handler.ValidateToken(token, validationParameters, out SecurityToken securityToken);
- return true;
- }
- catch (Exception ex)
- {
- Trace.WriteLine(ex.Message);
- return false;
- }
- }
- }
- }
|