12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Primitives;
- namespace TEAMModelOS.SDK.Extension
- {
- public static class HttpContextExtensions
- {
- /// <summary>
- /// 取得驗證金鑰,Authorization
- /// </summary>
- public static string GetToken(this HttpContext httpContext)
- {
- return httpContext.Request.Headers["Authorization"].ToString();
- }
- /// <summary>
- /// 取得JWT驗證金鑰,Authorization Bearer
- /// </summary>
- /// <param name="httpContext"></param>
- /// <returns></returns>
- public static string GetJwtToken(this HttpContext httpContext)
- {
- var token = string.Empty;
- string authorization = httpContext.Request.Headers["Authorization"].ToString();
- if (!string.IsNullOrWhiteSpace(authorization) && authorization.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase))
- {
- token = authorization.Substring("Bearer ".Length).Trim();
- }
- return token;
- }
- /// <summary>
- /// 取得遠端呼叫的IP
- /// </summary>
- public static string GetRemoteIP(this HttpContext httpContext)
- {
- return httpContext?.Connection?.RemoteIpAddress?.ToString();
- }
- /// <summary>
- /// 取得X-Auth-Key值
- /// </summary>
- /// <param name="key">Key Name</param>
- /// <returns></returns>
- public static string GetXAuth(this HttpContext httpContext, string key = null)
- {
- try
- {
- if (httpContext.Request.Headers.TryGetValue($"X-Auth-{key}", out StringValues value))
- return value.ToString();
- else
- return null;
- }
- catch
- {
- return null;
- }
- }
- /// <summary>
- /// 取得User-Agent值
- /// </summary>
- public static string GetUserAgent(this HttpContext httpContext)
- {
- try
- {
- return httpContext.Request.Headers["User-Agent"].ToString();
- }
- catch
- {
- return null;
- }
- }
- /// <summary>
- /// 取得Scheme值
- /// </summary>
- public static string GetScheme(this HttpContext httpContext)
- {
- return httpContext?.Request?.Scheme;
- }
- /// <summary>
- /// 取得HostName值
- /// </summary>
- public static string GetHostName(this HttpContext httpContext)
- {
- return httpContext?.Request?.Host.ToString();
- }
- }
- }
|