ABP 初探 之 AbpSession 扩展】的更多相关文章

Abp的权限管理是基于 Identity,所有的扩展也是基于 claims .claims 有许多默认属性,具体连接 关于 Identity的详细介绍,可以参考园友博客 继承 Microsoft.AspNet.Identity 的UserManager后,我们直接调用  await base.CreateIdentityAsync(user, authenticationType); 此方法完成登录,登录成功后可以获取 HttpContext.Current.User,通过HttpContext…
AbpSession只给了userId和TenantId,这次实际项目中并不够用,网上找了很久也没找到好的实现方法.项目初期没有时间进行研究,最近空了试了一下,大致实现添加额外字段并读取相应值的功能. 本文以实现添加用户名字字段为例 主要参考以下文章: 一.基于 DDD 的. NET 开发框架 - ABP Session 实现 该文主要介绍了ABP中关于AbpSession的源码及其实现,注:源码及其实现请参考此文,本文不做赘述 二.ABP 初探 之 AbpSession 扩展 该文记录作者对于…
  在ABP中AppUser表的数据字段是有限的,现在有个场景是和小程序对接,需要在AppUser表中添加一个OpenId字段.今天有个小伙伴在群中遇到的问题是基于ABP的AppUser对象扩展后,用户查询是没有问题的,但是增加和更新就会报"XXX field is required"的问题.本文以AppUser表扩展OpenId字段为例进行介绍. 一.AppUser实体表 AppUser.cs位于BaseService.Domain项目中,如下: public class AppUs…
当前Abp版本1.2,项目类型为MVC5. 以属性的形式扩展AbpSession,并在"记住我"后,下次自动登录也能获取到扩展属性的值,版权归"角落的白板报"所有! step1.添加IAbpSessionExtensions接口: /// <summary> /// IAbpSession Extensions 登录时"记住我"保存Cookie,也就是说关闭后再打开不重新登录的话,取得到值. /// </summary>…
类名 扩展的类型 方法名 参数 作用 XmlNodeExtensions XmlNode GetAttributeValueOrNull attributeName Gets an   attribute's value from an Xml node. JsonExtensions object ToJsonString bool   camelCase bool   indented Converts   given object to JSON string. StreamExtensi…
大.小项目都要设计权限,都想设计一个通用的权限,把权限做的比较复杂,现在了解了ABP的设计思路,觉得设计很简单,但实现方法与思路耐人寻味. 本篇只介绍AbpPermissions的数据库设计,其它表结构参考源代码即可[Name(资源文件唯一Id)].[IsGranted(是否授权)].[RoleId.UserId(授权于角色或用户)] ABP所有常量数据,都是程序启动时通过AbpKernelModule一次性加载完成,用的时候直接从内存中读取即可 public override void Pos…
SignalR简介 SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据. ASP.NET SignalR是ASP.NET开发人员的一个新库,可以使开发实时Web功能变得简单.SignalR允许服务器和客户端之间的双向通信.服务器现在可以将内容即时推送到连接的客户…
结束了天天加班的项目,项目虽然结束,但还是有点小问题,只能在后期优化当中完成了,本次做项目采用了,MVC.Webapi.Entityframework,在园了里看到了有关ABP的介绍,同样ABP也是最新技术集合,就加入了 ABP架构设计交流群 134710707,一起探讨.学习与进步. ABP的技术文档全是英文资料,不过现在不用担心了,群里的热心朋友已翻译成能看的懂语言了,详情 ABP 源代码地址 https://github.com/aspnetboilerplate ABP的基本介绍就不讲了…
最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用EntityFramework已经有段时间了,基于ABP这样的设计还是第一次看到,具体应用场景1:N,ABP权限设计,菜单的权限可以分配置给角色,也可以直接分配给用户. 另一个应用场景也可以是订单系统:客户可以通过订单查询到客户的所有订单明细,订单明细与客户没有关系,如果想直接查看客户的订单明细,也…
最近几天空闲时间比较多,就研究Abp的多语言,Abp是基于接口的依赖注入,有很多思想与方法都很好,需自己深入体会与应用,转化成自己的思想应用于实践. 本篇介绍基于 开源Demo ModuleZeroSampleProject,多语言分为两部分,基于后台的CS代码和前台的JS. 资源文件定义分为Web端和嵌入DLL层 基于Dll层的资源文件需设置文件属性为嵌入,否则发布后找不到资源文件. 基于Web端的初始化方法 //Add/remove localization sources here Con…
返回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…
thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.45;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr&g…
ABP集合贴 本文背景 公司最近规划的新框架准备基于ABP来搭建,自从在阳铭博客看到ABP框架的介绍后,就一直持续关注着,但还没真正在实际项目中直接使用ABP,只是自己做了一些学习和Demo.ABP所用到的一些新技术倒是有些吸收了用在了以前的框架中,例如AutoMapper.Dto.Swagger等.以前我们公司是自己研发了一套基于MVC5+NHibernate+Memcached+Mysql读写分离的框架.由于我是公司里面比较早接触ABP的,零零散散也收集了一些ABP相关资料,每次有团队成员找…
本文背景 公司最近规划的新框架准备基于ABP来搭建,自从在阳铭博客看到ABP框架的介绍后,就一直持续关注着,但还没真正在实际项目中直接使用ABP,只是自己做了一些学习和Demo.ABP所用到的一些新技术倒是有些吸收了用在了以前的框架中,例如AutoMapper.Dto.Swagger等.以前我们公司是自己研发了一套基于MVC5+NHibernate+Memcached+Mysql读写分离的框架.由于我是公司里面比较早接触ABP的,零零散散也收集了一些ABP相关资料,每次有团队成员找我要相关资料时…
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 一.AbpSession是Session吗? 1.首先来看看它们分别对应的类型是什么? 查看源码发现Session是定义在Controller中的类型为HttpSessionStateBase的属性. public HttpSessionStateBase Session { get; set; } 再来看看AbpSession是何须类也,咱们定位到AbpController中看一看. publ…
上一节我们讲到登录逻辑,我做的登录逻辑很简单的,我们来看一下abp module-zero里面的登录代码. #region Login / Logout public ActionResult Login(string returnUrl = "") { if (string.IsNullOrWhiteSpace(returnUrl)) { returnUrl = Request.ApplicationPath; } return View( new LoginFormViewMode…
官方网站 Github ABP集合贴 @ kebinet https://www.codeproject.com/articles/1115763/using-asp-net-core-entity-framework-core-and-asp-n https://www.codeproject.com/articles/1117216/using-asp-net-core-entity-framework-core-and-asp ABP文档 官方文档 ABP框架理论研究总结(典藏版) @ t…
abp及实战框架概述 接触abp也快一年了,有过大半年的abp项目开发经验,目前项目中所用的abp框架版本为0.10.3,最新的abp框架已经到了1.4,并且支持了asp.net core.关于abp框架有哪些特性.有什么好处我这里就不讲了.如果你对abp不太了解请先去 Abp官网 了解或者参考我的学习之路里面的链接.在这系列的文章里面我会把我在实战中的经验.碰到的坑分享出来.希望跟大家一起学习讨论. 学习之路 一年前在博客园里面看到了阳光铭睿 的 http://www.cnblogs.com/…
一.AbpSession的认识 在ABP中提供了IAbpSession的接口用来获取用户和租户的信息,没有使用Asp.Net中的Session,那么AbpSession到底和Session有没有关系?具体是怎么实现的呢? 在ABP的源码中共有两个类具体实现了IAbpSession接口:NullAbpSession和ClaimAbpSession,其中NullAbpSession实现了空对象设计模式,那么主要的代码就是在这个ClaimAbpSession中 从上面的代码中我们可以看出我们的用户ID…
ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module).其中13个依赖于Abp这个核心包.另外两个包(FluentMigration,Web.Resources)相对独立 Abp.AutoMapper: 实现对象之间的自动映射. Abp.EntityFramework:通过EntityFramework实现数据访问层. Abp.FluentMigra…
点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 几乎所有的企业级应用程序都会有不同级别的权限验证.权限验证是用于检查用户是否允许某些指定操作.…
1.概述 基于DDD的.NET开发框架 - ABP初探 基于DDD的.NET开发框架 - ABP分层设计 基于DDD的.NET开发框架 - ABP模块设计 基于DDD的.NET开发框架 - ABP启动配置 2.通用结构 基于DDD的.NET开发框架 - ABP依赖注入 基于DDD的.NET开发框架 - ABP Session实现 基于DDD的.NET开发框架 - ABP日志Logger集成 基于DDD的.NET开发框架 - ABP缓存Caching实现 3.领域层 基于DDD的.NET开发框架…
ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 几乎所有的企业级应用程序都会有不同级别的权限验证.权限验证是用于检查用户是否允许某些指定操作.Abp有基础设施让你来实现权限验证. 注意:关于IPermissionChecker…
ABP 初探 之User.Role.Permission数据库设计 (EntityFramework 继承的另一种使用方法) 最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用EntityFramework已经有段时间了,基于ABP这样的设计还是第一次看到,具体应用场景1:N,ABP权限设计,菜单的权限可以分配置给角色,也可以直接分配给用户. 另一…
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 第一点,上一篇文章中我们讲到codefirst中一些问题包括如图,codefirst在每次执行命令的时候会生成新的类,后来会越来越多. 1,codefirst在执行的数据库迁移过程中产生了很多文件,对于强迫症的我而言特别不爽,这些其实是可以不用生成的. 2,在codefirst实际开发过程的冲突 3,每次增加一个表或者增删改一个字段都要去敲命令,好麻烦 4,数据库初始化的时候,不用把很多东西写入程序里面. 5,…
ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate-Project-CMS 角色访问控制(RBAC) 角色访问控制(RBAC)应该是目前用得最多也是关注最多的权限管理模型了. 权限(Permission)与角色(Role)相关联,用户(User)通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理. RBAC引入了角色(Role)概…
缓存与ABP Redis Cache 为什么要用缓存 为什么要用缓存呢,说缓存之前先说使用缓存的优点. 减少寄宿服务器的往返调用(round-trips). 如果缓存在客户端或是代理,将减少对服务器的请求,减少带宽. 减少对数据库服务器的往返调用(round-trips). 当内容缓存在web服务器,能够减轻对数据库的请求. 减少网络带宽. 避免了重新生成可重用内容的时耗. 提高性能 因为缓存减少了round-trips, network traffic(网络带宽),并避免- 了生成可重用内容的…
EntityFramework集成 Nuget包 DbContext 仓储 默认仓储 自定义仓储 应用特定的基础仓储类 自定义仓储示例 仓储最佳实践 事务管理 数据存储 ABP可以使用ORM框架,它内置集成EntityFramework.本文档将讲解ABP如何使用EntityFramework.假定你对EntityFramework已经有了初级水平. Nuget包 在ABP中使用Abp.EntityFramework nuget包扩展了EntityFramework.需要将它添加到工程中.最好在…
授权 介绍 关于IPermissionChecker 定义权限 检查权限 使用AbpAuthorize特性 AbpAuthorize特性注意点 抑制授权 使用IPermissionChecker 在Razor视图 客户端(Javascript) 权限管理 介绍 几乎所有的企业应用都在一定程度上使用授权.在应用中,授权用来检查用户是否允许执行一些特定的操作.ABP定义了一个基础的权限设施来实现授权. 关于IPermissionChecker 授权系统使用IPermissionChecker来检查权…
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 缓存 为什么要用缓存 为什么要用缓存呢,说缓存之前先说使用缓存的优点. 减少寄宿服务器的往返调用(round-trips). 如果缓存在客户端或是代理,将减少对服务器的请求,减少带宽. 减少对数据库服务器的往返调用(round-trips). 当内容缓存在web服务器,能够减轻对数据库的请求. 减少网络带宽. 避免了重新生成可重用内容的时耗. 提高性能 因为缓存减少了round-trips, network t…