BaseController.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using HiTeachCE.Extension;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.AspNetCore.Mvc;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Security.Claims;
  8. using System.Threading.Tasks;
  9. using TEAMModelOS.SDK.Context.Constant.Common;
  10. using TEAMModelOS.SDK.Extension.JwtAuth.Models;
  11. namespace HiTeachCE.Controllers
  12. {
  13. public class BaseController : Controller
  14. {
  15. public List<string> GetLoginUser(string claimType)
  16. {
  17. var tokenHeader = "";
  18. HttpRequest request = HttpContext.Request;
  19. if (request.Headers.ContainsKey(Constants.AUTHORIZATION))
  20. {
  21. tokenHeader = request.Headers[Constants.AUTHORIZATION];
  22. //tokenHeader = tokenHeader.ToString().Substring("Bearer ".Length).Trim();
  23. tokenHeader = tokenHeader.Replace("Bearer ", "");
  24. }
  25. if (request.Query.ContainsKey(Constants.ACCESS_TOKEN))
  26. {
  27. tokenHeader = request.Query[Constants.ACCESS_TOKEN];
  28. tokenHeader = tokenHeader.Trim();
  29. }
  30. if (string.IsNullOrEmpty(tokenHeader))
  31. {
  32. return null;
  33. }
  34. ClaimModel claimModel = JwtHelper.SerializeJWT(tokenHeader);
  35. claimModel.Claim.TryGetValue(claimType, out var claimValue);
  36. List<string> claimValues = new List<string>();
  37. foreach (Claim claim in claimModel.Claims)
  38. {
  39. if (claim.Type.Equals(claimType))
  40. {
  41. claimValues.Add(claim.Value);
  42. }
  43. }
  44. return claimValues;
  45. }
  46. }
  47. }