AbpSession定义了几个关键属性:
- UserId:当前用户的Id或空(如果没有当前用户),如果调用需要授权的代码,它就不能为空。
- TenantId:当前租户的Id或空(如果没有当前租户:尚未登录或是个宿主用户)。
- ImpersonatorUserId:模拟用户的Id(如果其它用户模拟当前会话),如果不是模拟登录就为空。
- ImpersonatorTenantId:模拟用户的租户的Id(如果其它用户模拟当前会话),如果不是模拟登录就为空。
- MultiTenancySide:可能是宿主或租户。
UserId和TenantId都可为空,有不可为空的方法GetUserId和GetTenantId,如果你能确保有当前用户,你可以调用GetUserId()。如果当前用户为空,这个方法抛出异常,GetTenantId()雷同。
Impersonator(模拟)属性与其它属性不能共同使用,一般只为了审核日志的目的才用它。