ABP之session】的更多相关文章

ABP提供了一个IAbpSession接口,可以在不使用ASPNET的session的情况下获取当前用户和租户.IAbpSession还被ABP中的其他结构(如设置和授权系统)完全集成和使用. 注入session IAbpSession通常是注入到所需类的属性,除非在没有会话信息的情况下无法工作.如果我们使用属性注入,我们可以使用 NullAbpSession.Instance作为默认值,如下图所示: public class MyClass : ITransientDependency { p…
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之7.ABP Session管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 简介 如果一个应用程序需要登录,则它必须知道当前用户执行了什么操作.因此ASP.NET…
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP官方文档:http://www.aspnetboilerplate.com/Pages/Documents Github上的开源项目:http…
上一节我们讲到登录逻辑,我做的登录逻辑很简单的,我们来看一下abp module-zero里面的登录代码. #region Login / Logout public ActionResult Login(string returnUrl = "") { if (string.IsNullOrWhiteSpace(returnUrl)) { returnUrl = Request.ApplicationPath; } return View( new LoginFormViewMode…
一.背景 你说我 Castle Windsor 库用得好好的,为啥要大费周章的替换成 DryIoc 库呢?那就是性能,DryIoc 是一款优秀而且轻量级的 DI 框架,整个项目代码就两个文件,加起来代码 1 万行左右(PS: 大部分都是注释). 在各个 Ioc 容器的 性能评测 当中,DryIoc 以其优异的性能成为我选择使用他的原因.Abp 使用的 Castle Windsor 在解析复杂对象的时候,速度非常慢,而替换为 DryIoc 之后速度可以提升 150% 以上. [注意] 本文仅对 .…
一,一些相关解释 Service 在应用服务层也就是application层.应用服务用于将领域(业务)逻辑暴露给展现层.展现层通过传入DTO(数据传输对象)参数来调用应用服务,而应用服务通过领域对象来执行相应的业务逻辑并且将DTO返回给展现层. 也就是这样避免了应用服务层和展现层的,直接数据交互,而是通过dto实现了数据过滤,这样就可以较好的避免非法数据的传入传出.另外大头还要实现数据隐藏,方便扩展等好处. 创建应用服务时需要注意: 1.service 要实现IApplicationServi…
上篇中我们已经可以实现sso,并且为各个服务集成sso认证.本篇处理权限系统的角色问题,权限系统分两层,第一层为整体系统角色权限,区分app用户.后台用户.网站用户的接口权限,第二层为业务系统权限,对业务子系统各个岗位的人划分不同权限. 第一层的角色固化在代码中,如商家app用户,师傅app用户,订单系统用户,接单系统用户等,第二层角色可自定义,和现有系统的角色概念一致.权限系统需要读取其他各个子系统的权限列表(标记在控制器.action上),并在系统权限中定义第一层权限和第二层权限.然后自定义…
abp中的菜单加载机制 在abp中菜单的定义与我们传统写的框架不一样,它是在编写代码的时候配置,而我们一般写的通用权限管理系统中,是后期在后台界面中添加的.这一点有很大不同.abp关于菜单的定义及管理挺复杂的. 与菜单相关的结构类.接口及扩展方法类 MenuDefinition:定义应用程序的菜单的结构 MenuItemDefinition:定义应用程序的菜单项的结构 IHasMenuItemDefinitions: 定义子菜单的接口 HasMenuItemDefinitionsExtensio…
我们来创建动态菜单吧 首先,先对动态菜单的概念.操作.流程进行约束:1.Host和各个Tenant有自己的自定义菜单2.Host和各个Tenant的权限与自定义菜单相关联2.Tenant有一套默认的菜单,规定对应的TenantId=-1,在添加租户时自动将标准菜单和标准菜单的权限初始化到添加的租户 一.先实现菜单在数据库中的增删改查 第一步:创建表.实体,添加DbContext 我们需要创建一个菜单表,延续Abp的命名方法,表名叫AbpMenus吧(菜单和权限.验证我们要关联,所以文件尽量放在A…
[说明:博主采用边写边思考的方式完成这一系列的博客,所以代码以附件为准,文中代码仅为了说明.] 结构 在学习和实现CQRS的过程中,首要参考的项目是这个[http://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html].所以Dpfb.Cqrs中的整体结构都是参考这个例子来的,在这个基础之上添加和改进.总的来说,.Cqrs项目的整体结构如下所示: 主要包含了(命令,事件,通信,命令处理,事件处理这几个方面).具体的角色则如下图所示: 通信中包含了事…