上下文
这页对应的是 3.x 里的运行时请求上下文能力,核心组件是 上下文(Aegis.Context)。
先理解边界
当前这套“上下文”主要解决的是请求级元信息访问,不是完整的用户会话体系。
最常见的可读信息包括:
- 请求标识
RequestId - 客户端 IP
User-Agent- 可透传的业务请求头
如果你要解决的是“当前用户是谁、拥有哪些权限”,应该继续看认证和鉴权组件,而不是只看这一页。
最常见的读取方式
var requestId = ActionContext.Current.RequestId;
var ipAddress = ActionContext.Current.IpAddress;
var headers = ActionContext.Current.Headers;
什么时候适合用
- 给日志补充请求标识
- 读取业务 Header
- 做链路问题排查
- 在服务层获取当前请求来源信息
什么时候不适合用
- 想获取当前登录用户完整身份时
- 想跨请求保存业务状态时
- 代码根本不在 HTTP 请求链路内时
推荐阅读顺序
- 先看 基础设施(Aegis.Core.Infrastructure),理解
ActionContext.Current是怎么被初始化的 - 再看 上下文(Aegis.Context),掌握可读取的数据范围
- 如果需要用户身份和权限,再继续看 基础授权