ABP框架 - 会话
2018-06-22 07:38:37来源:未知 阅读 ()
文档目录
本节内容:
- 简介
- 关于 IAbpSeesion
- 注入会话
- 会话属性
- 用户标识符
简介
如果一个应用需要登录,它就需要知道当前用户在执行的操作。尽管Asp.net自身在展现层提供了Session(会话)对象,而ABP提供IAbpSession接口来获取当前用户和租户,而不用Asp.net的Session。
关于 IAbpSession
必须实现IAbpSession接口,以便获取真实的会话信息。尽管你可以用自己的方式实现它,但在module-zero项目里已经完全地实现了。
IAbpSession同样可完全地集成到Abp里并用在ABP的其它结构里(设置系统和授权系统)。
注入会话
IAbpSession通常被属性注入到需要的类,否则不可能有会话信息。如果我们使用属性注入,可以使用NullAbpSession.Instance作为默认值,如上所示:
public class MyClass : ITransientDependency { public IAbpSession AbpSession { get; set; } public MyClass() { AbpSession = NullAbpSession.Instance; } public void MyMethod() { var currentUserId = AbpSession.UserId; //... } }
由于认证/授权一个应用层任务,所以建议在应用层或更上面的层使用IAbpSession(通常我们不在领域层里使用它)。ApplicationService.AbpController、AbpApiController和其它基类已经完全注入AbpSession。所以在应用服务实例的方法里,你可以直接使用AbpSession属性。
会话属性
AbpSession定义了几个关键属性:
- UserId:当前用户的Id或空(如果没有当前用户),如果调用需要授权的代码,它就不能为空。
- TenantId:当前租户的Id或空(如果没有当前租户:尚未登录或是个宿主用户)。
- ImpersonatorUserId:模拟用户的Id(如果其它用户模拟当前会话),如果不是模拟登录就为空。
- ImpersonatorTenantId:模拟用户的租户的Id(如果其它用户模拟当前会话),如果不是模拟登录就为空。
- MultiTenancySide:可能是宿主或租户。
UserId和TenantId都可为空,有不可为空的方法GetUserId和GetTenantId,如果你能确保有当前用户,你可以调用GetUserId()。如果当前用户为空,这个方法抛出异常,GetTenantId()雷同。
Impersonator(模拟)属性与其它属性不能共同使用,一般只为了审核日志的目的才用它。
用户标识符
你可用.ToUserIdentifier()扩展方法,从IAbpSession创建一个UserIdentifier对象。由于UserIdentifier用在众多的API里,所以这将简化为当前用户创建一个UserIdentifier。
kid1412注:英文原文:http://www.aspnetboilerplate.com/Pages/Documents/Abp-Session
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:ABP框架 - 时间
下一篇:那些年我做的毕业设计
- 详解ABP框架中Session功能的使用方法 2020-01-18
- 详解ABP框架中的数据过滤器与数据传输对象的使用 2020-01-18
- 解析ABP框架中的日志功能 2019-11-27
- 详解ABP框架的参数有效性验证和权限验证 2019-11-25
- 详解ASP.NET样板项目ABP框架的特性 2019-11-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash