ASP.NET Zero--15.一个例子(8)商品分类管理-权限控制
1.添加权限常量
//分类管理权限
public const string Pages_Category = "Pages.Category";
public const string Pages_Category_Create = "Pages.Category.Create";
public const string Pages_Category_Edit = "Pages.Category.Edit";
public const string Pages_Category_Delete = "Pages.Category.Delete";
2.编写代码
//分类权限的获取
var category=pages.CreateChildPermission(AppPermissions.Pages_Category, L("CategoryManager"));
category.CreateChildPermission(AppPermissions.Pages_Category_Create, L("Category_Create"));
category.CreateChildPermission(AppPermissions.Pages_Category_Edit, L("Category_Edit"));
category.CreateChildPermission(AppPermissions.Pages_Category_Delete, L("Category_Delete"));
3.编辑语言文件
<text name="Category_Create" value="添加分类" />
<text name="Category_Edit" value="编辑分类" />
<text name="Category_Delete" value="删除分类" />
4.测试

客户端权限控制
1.打开Index.js文件
var _categoryService = abp.services.app.category;
//权限
var _permissions = {
create: abp.auth.hasPermission('Pages.Category.Create'),
edit: abp.auth.hasPermission('Pages.Category.Edit'),
'delete': abp.auth.hasPermission('Pages.Category.Delete')
};
var $span = $('<span></span>');
if (_permissions.edit) {//判断是否有编辑权限
$('<button class="btn btn-default btn-xs" title="' + app.localize('Edit') + '"><i class="fa fa-edit"></i></button>')
.appendTo($span)
.click(function() {
_editModal.open({ id: data.record.id });
});
}
if (_permissions.delete) {//判断是否有删除权限
$('<button class="btn btn-default btn-xs" title="' + app.localize('Delete') + '"><i class="fa fa-trash-o"></i></button>')
.appendTo($span)
.click(function() {
deleteCategory(data.record);
});
}
return $span;

2.测试

3.添加按钮加权限
@if (IsGranted(AppPermissions.Pages_Category_Create))//判断是否有添加分类的权限
{
<button id="CreateNewCategoryButton" class="btn btn-primary blue"><i class="fa fa-plus"></i>添加分类</button>
}

服务端权限控制
1.控制器加权限
[AbpMvcAuthorize(AppPermissions.Pages_Category)]
public class CategoryController : AbpZeroTemplateControllerBase
{
...
[AbpMvcAuthorize(AppPermissions.Pages_Category_Create)]
public ActionResult CreateModal()
[AbpMvcAuthorize(AppPermissions.Pages_Category_Edit)]
public ActionResult EditModal(int id)
...

2.方法加权限
[AbpAuthorize(AppPermissions.Pages_Category)]
public class CategoryAppService : AbpZeroTemplateAppServiceBase, ICategoryAppService
{
...
[AbpAuthorize(AppPermissions.Pages_Category_Create)]
public void CreateCategory(CreateCategoryInput input)
...
[AbpAuthorize(AppPermissions.Pages_Category_Delete)]
public void DeleteCategory(EntityRequestInput input)
...
[AbpAuthorize(AppPermissions.Pages_Category_Edit)]
public void UpdateCategory(CreateCategoryInput input)
...
3.菜单加权限
//子菜单
PageNames.App.Common.Category,
L("CategoryManager"),
url:"Mpa/Category",
icon: "icon-globe",
requiredPermissionName: AppPermissions.Pages_Category//菜单权限,登录用户所在角色有此权限才会显示出来
))


ASP.NET Zero--15.一个例子(8)商品分类管理-权限控制的更多相关文章
- [asp.net core]SignalR一个例子
摘要 在一个后台管理的页面想实时监控一些操作的数据,想到用signalR. 一个例子 asp.net core+signalR 使用Nuget安装包:Microsoft.AspNetCore.Sign ...
- ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露
一.前言 在涉及到后端项目的开发中,如何实现对于用户权限的管控是需要我们首先考虑的,在实际开发过程中,我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能,而在 Grapefruit.VuCore ...
- 在ASP.NET MVC里对Web Page网页进行权限控制
我们在ASP.NET MVC开发时,有时候还是得设计ASP.NET的Web Page网页(.aspx和.aspx.cs),来实现一些ASP.NET MVC无法实现的功能,如此篇<Visual S ...
- Asp.net下使用HttpModule模拟Filter,实现权限控制
在asp.net中,我们为了防止用户直接从Url中访问指定的页面而绕过登录验证,需要给每个页面加上验证,或者是在模板页中加上验证.如果说项目比较大的话,添加验证是一件令人抓狂的事情,本次,我就跟大家分 ...
- 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)
黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...
- ASP.NET Zero--14.一个例子(7)商品分类管理-分类搜索及分页
分类搜索实现 1.添加搜索框 打开Index视图,添加一个搜索框,代码如下: ... <div class="portlet light"> <div class ...
- [ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》
[ASP.NET MVC2 系列] [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序> ...
- ASP.NET Zero--8.一个例子(1)菜单添加
以一个商品分类管理功能来编写,代码尽量简单易懂.从一个实体开始,一直到权限控制,由浅到深一步步对功能进行完善. 1.打开语言文件 [..\MyCompanyName.AbpZeroTemplate.C ...
- ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点
参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...
随机推荐
- cdr格式文件抠图
使用CoreDRAW打开cdr文件,另存为ai格式 使用illustrator打开新文件,使用套索工具选择需要的图形,复制到photoshop中进行编辑
- (中等) Hiho 1232 Couple Trees(15年北京网络赛F题),主席树+树链剖分。
"Couple Trees" are two trees, a husband tree and a wife tree. They are named because they ...
- js MD5加密后的字符串
js MD5加密后的字符串 <script language="JavaScript"> /************************************** ...
- iOS学习基本常识
转发至:http://blog.sina.com.cn/s/blog_9266da3d010184i0.html 1. 了解main函数, UIApplication是初始化程序的核心,它接受4个参 ...
- cakephp 2.0 源码解读(一)
lib - Cake -basic.php -bootstrap.php -Cache -Config -Configure -Controller -Core -Error -Event -I18n ...
- 下标脚本(Swift)
下标脚本 可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问集合(collection),列表(list)或序列(sequence的快捷 ...
- Android 中内容提供者的使用
在Android中内容提供者主要是用于不同程序之间的数据共享.内容提供器的用法一般有两种,一种是使用现有的内容提供器来读取和操作相应程序的数据,另一种是创建自己的内容提供器,供其他的程序访问. 使用现 ...
- 解决KVM中鼠标不同步问题
VNCViewer中的鼠标走得总是比本地系统中的鼠标要慢,不同步,往往实体机中的鼠标都移出vnc窗口外边了,虚拟机中的鼠标指针还没移到需要点击的位置,操作起来很不方便. 起初的想法也是配置的问题,就按 ...
- 单位冲击响应与频响以及FIR实现代码(C语言)(转)
源:FIR数字滤波器C语言 1.单位冲击响应与频响 就如同之前所说的一样,使用下图所示的单位冲击响应,所设计的滤波器,是无法实现的. 现在,让我们看看其这个滤波器的频响.所谓频响,就是计算其单位冲击响 ...
- 前段验证框架 formValidator
http://blog.csdn.net/lorinzhang/article/details/7283557