HTML5技术

Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10 - yjq_叶(2)

字号+ 作者:H5之家 来源:博客园 2015-12-01 11:09 我要评论( )

这是MVC的机制,这个方法是重写了执行方法之前的这个方法,不过需要在控制器上或者方法上加上下面这个代码 那么接下来就说下我的判断思路: (! WebCookieHelper.AdminCheckLogin()) {filterContext.Result = , true

这是MVC的机制,这个方法是重写了执行方法之前的这个方法,不过需要在控制器上或者方法上加上下面这个代码

那么接下来就说下我的判断思路:

(!WebCookieHelper.AdminCheckLogin()) { filterContext.Result = , true); return; }

View Code

这是用来先检测下用户是否登录,如果没有登录则直接回到登录页面,

(WebCookieHelper.GetAdminId(5) == 1) { return; }

View Code

这是如果进来的用户是超级管理员那么就直接显示要显示的页面页面即可,左边菜单栏晚点讲。

customAttributes = filterContext.ActionDescriptor.GetCustomAttributes(true); if (customAttributes != null && customAttributes.Length > 0) { for (int i = 0; i < customAttributes.Count(); i++) { ) {actionCode = (customAttributes[i] actionUrl = (customAttributes[i] actionResultType = (customAttributes[i] as AdminActionMethod).ActionResultType;//获取返回视图类型

View Code

利用这个来抓取用户当前要执行的方法,然后对其作出相应的处理,

List<AuthorDesign.Model.AdminPageAction> pageActionList = AdminMenuHelper.GetNowAdminMenu();

View Code

这行代码用来加载当前要显示的全部页面

获取管理员可操作菜单列表 List<Model.AdminPageAction> GetAdminMenu(int adminId) { )) { Dictionary<) as Dictionary<int, List<Model.AdminPageAction>>; List<Model.AdminPageAction> adminMenuList = adminMenuListDic[adminId]; if (adminMenuList == null) { adminMenuList = EnterRepository.GetRepositoryEnter().GetPageMenuRepository.GetAdminShowPage(adminId); adminMenuListDic.Add(adminId, adminMenuList); CacheHelper.AddCache(, adminMenuListDic, 2); } return adminMenuList; } else { List<Model.AdminPageAction> adminMenuList = EnterRepository.GetRepositoryEnter().GetPageMenuRepository.GetAdminShowPage(adminId); Dictionary<int, List<Model.AdminPageAction>> adminMenuListDic = new Dictionary<int, List<Model.AdminPageAction>>(); adminMenuListDic.Add(adminId, adminMenuList); CacheHelper.AddCache(, adminMenuListDic, 2); return adminMenuList; } //if (CacheHelper.IsExistCache("AdminMenuList_"+adminId)) { // return CacheHelper.GetCache("AdminMenuList_" + adminId) as List<Model.AdminPageAction>; //} //else { // List<Model.AdminPageAction> adminMenuList = EnterRepository.GetRepositoryEnter().GetPageMenuRepository.GetAdminShowPage(adminId); // CacheHelper.AddCache("AdminMenuList_" + adminId, adminMenuList, 1); // return adminMenuList; //} //return EnterRepository.GetRepositoryEnter().GetPageMenuRepository.GetAdminShowPage(adminId); } 获取当前管理员可操作菜单列表(超级管理员另取) List<Model.AdminPageAction> GetNowAdminMenu() { return GetAdminMenu(WebCookieHelper.GetAdminId(0)); }

View Code

这里我用缓存做了下处理,不知道处理的好不好,还望你们指点我一下。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • 如何在 ASP.NET Core 中发送邮件 - Savorboard

    如何在 ASP.NET Core 中发送邮件 - Savorboard

    2017-05-02 08:02

  • 十二个 ASP.NET Core 例子 - Savorboard

    十二个 ASP.NET Core 例子 - Savorboard

    2017-04-27 16:01

  • ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

    2017-04-24 08:04

网友点评
1