初识ABP vNext(8):ABP特征管理
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章。 目录
前言上一篇提到了ABP功能管理(特征管理),它来自ABP的FeatureManagement模块,ABP官方文档貌似还没有这个模块的相关说明,但是个人感觉这个模块非常实用,下面就简单介绍一个特征管理的基本应用。 开始在租户管理中,有一个“管理功能”按钮,默认是没有数据的,界面上也没有地方维护。 特征管理简单来说就是在同一套系统中为不同的租户提供一些差异化的功能。比如免费用户,提供的是基础功能,VIP用户则会多一些高级功能。 定义特征在Application.Contracts项目中添加Features文件夹。 srcXhznl.HelloAbp.Application.ContractsFeaturesHelloAbpFeatures.cs:
srcXhznl.HelloAbp.Application.ContractsFeaturesHelloAbpFeatureDefinitionProvider.cs:
以上代码添加了2个特征:SocialLogins,UserCount。 SocialLogins(社交登录),valueType为ToggleStringValueType,意味着它是个勾选框,默认值为"true"。 UserCount(用户数量),valueType为FreeTextStringValueType,意味着它是个输入框,默认值为"10"。 现在可以为不同租户设置不同的特征值。 应用特征特征值定义好了,接下来就是如何应用了,首先看一下用户数量如何控制。 用户数量目前用户是通过 对应的ABP源码在:abpmodulesidentitysrcVolo.Abp.Identity.ApplicationVoloAbpIdentityIdentityUserAppService.cs中。 在我们的Application项目中添加一个服务类继承 srcXhznl.HelloAbp.ApplicationIdentityHelloIdentityUserAppService.cs:
下面可以将某租户的用户数量设置一下,测试是否有效果: 这样,就实现了对不同租户用户数量的限制。 社交登录特征值也可以在前端使用,在 拿到特征值,前端也可以做一些差异化功能,比如这里的是否支持社交登录。 关于Feature就简单介绍到这里,本项目源码放在:https://github.com/xiajingren/HelloAbp 另外非常感谢热心小伙@jonny-xhl给添加的设置模块(来自EasyAbp的Abp.SettingUi)。 最后本文只是对Feature的最基本介绍,关于Feature,还有很多实用的API方法,基于Feature可以满足很多定制化需求,想深入了解的话可以看下Abp.FeatureManagement源码。 感谢@jonny-xhl的pr。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 具有2个不同域的mvc3路由
- ASP.NET MVC3 Controller或Model中虚拟路径的根相对路径
- asp.net – Visual Studio不识别新类
- asp.net – 在DotNetNuke中使用jQuery UI datepicker而不是
- asp.net-core-mvc – 使用RenderBody()的UTF-8中的特殊字符
- asp.net – 使用TextBox的AutoPostback失去焦点
- asp.net-mvc-4 – 多个RequiredFieldValidator崩溃页面
- 寻求关于消除asp.net 3.5的建议
- asp.net – IIS 7.5中的Windows身份验证因信任关系异常而失
- asp.net – IIS错误 – HTTP错误500.24 – 内部服务器错误
- asp.net-mvc – 如何在javascript文件中使用资源
- asp.net – 如何在使用Html.TextAreaFor时更改字
- asp.net – 在ASP MVC3中,如何使用uri执行控制器
- ASP.NET CheckBoxList DataBinding问题
- 将下拉列表绑定到详细信息视图的下载列表ASP.NET
- 用于ASP.NET工作示例的Youtube API v3
- 是否可以从ASP.NET Web服务方法手动将HTTP代码40
- asp.net-mvc-3 – 如何修复此MVC网站错误:无法加
- 如何配置IIS 7以使用子目录作为默认文档?
- asp.net-mvc – MVC4 Web Api中的[Bind(Prefix =