| | |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | |
| | | public class BaseController : ControllerBase |
| | | { |
| | | protected string OrgId |
| | | private RequestInfo _requestInfo; |
| | | |
| | | protected RequestInfo RequestInfo |
| | | { |
| | | get |
| | | { |
| | | var orgId = GetOrgIdFromHeader(); |
| | | if (string.IsNullOrEmpty(orgId)) |
| | | if (_requestInfo == null) |
| | | { |
| | | throw new ArgumentException("请求组织ID不存在!请检查请求头中是否包含有效的OrgId。"); |
| | | //必填项 |
| | | //_requestInfo.ValidateRequired("OrgId"); |
| | | _requestInfo = HttpContext.RequestServices.GetService<RequestInfo>(); |
| | | } |
| | | return orgId; |
| | | return _requestInfo; |
| | | } |
| | | } |
| | | |
| | | private string GetOrgIdFromHeader() |
| | | { |
| | | if (HttpContext.Request.Headers.TryGetValue("OrgId", out var orgIdValue)) |
| | | { |
| | | return orgIdValue.ToString(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | // 可选:提供一个安全获取OrgId的方法,不抛出异常而是返回默认值或null |
| | | protected bool TryGetOrgId(out string orgId) |
| | | { |
| | | orgId = GetOrgIdFromHeader(); |
| | | return !string.IsNullOrEmpty(orgId); |
| | | } |
| | | } |