ABP理论学习之Abp Session
2015-12-17 12:03
218 查看
返回总目录
注入Session
使用Session属性
IAbpSession已经完全集成到ABP(实例的设置系统和授权系统)中。
因为授权是应用层的事儿,所以建议在应用层和更高的层使用IAbpSession(一般我们不再领域层使用)。ApplicationService,AbpController,AbpApiController已经注入了 AbpSession。因此,你可以直接在应用层服务方法中为实例使用AbpSession属性。
UserId:当前用户的Id。值为null,表示当前的用户不存在。如果调用的代码授权给某个用户的话,那么值不为null。
TenantId:当前租户的Id。如果当前的租户不存在,值就为null。
MultiTenancySide:可能是Host(租主)或者Tenant(租户)。
UserId和TenantId是nullable(可空的),也存在不可空的GetUserId()和 GetTenantId()方法。如果你确定当前的用户存在,那么你可以调用GetUserId()。如果当前的用户为null,那么该方法就会抛异常。GetTanantId()也是类似的。
本篇目录
介绍注入Session
使用Session属性
介绍
当应用程序要求用户登录时,那么应用程序也需要知道当前用户正在执行的操作。虽然ASP.NET本身在展现层提供了Session对象,但ABP也提供了在任何需要获得当前用户和租户的地方都可以使用的IAbpSession接口。关于IAbpSession
为了获得实际的session信息,必须要实现IAbpSession接口。虽然你可以用自己的方式实现它,但在module-zero项目中已经完全实现。IAbpSession已经完全集成到ABP(实例的设置系统和授权系统)中。
注入Session
IAbpSession一般属性注入到需要的类中,除非没有Session信息导致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属性。
使用Session属性
AbpSession定义了一些key属性:UserId:当前用户的Id。值为null,表示当前的用户不存在。如果调用的代码授权给某个用户的话,那么值不为null。
TenantId:当前租户的Id。如果当前的租户不存在,值就为null。
MultiTenancySide:可能是Host(租主)或者Tenant(租户)。
UserId和TenantId是nullable(可空的),也存在不可空的GetUserId()和 GetTenantId()方法。如果你确定当前的用户存在,那么你可以调用GetUserId()。如果当前的用户为null,那么该方法就会抛异常。GetTanantId()也是类似的。
相关文章推荐
- Loadrunner中关联的作用:
- poj 1273 Drainage Ditches
- php继承
- ExtJS实现分页grid paging
- 详解js图片轮播效果实现原理
- oracle 连接会话管理
- 初步探讨ARM调试技术
- sql_autoload_register() 函数 和__autoload() 的区别
- 尼采
- my-innodb-heavy-4G.cnf
- WindowS下Ant的安装与配置
- Android超详细环境搭建方法!
- Android自动化埋点的实践
- Android常用工具类
- 网络字符串 转 时间
- ExtJS错误解决 Cannot read property 'on' of undefined
- 删除的另一种思维,python代码体会
- Slope One协同推荐算法php代码
- Vaadin 的基本概况和基础开发
- 华为2015机考题最后一题解法