ASP.NET MVC 巧用代码注释做权限控制以及后台导航

请先看:http://www.cnblogs.com/xiaoqi/archive/2011/01/24/1942880.html

 

权限控制需要将控制器和Action信息写入到数据库,手动添加的话比较麻烦,有没有更简单的办法呢?

那就用反射把吧,我们可以借助代码注释( 将权限控制的详细用xml注释的方式写到代码里)+反射技术来巧妙的实现

同时,还可以用来作后台导航哦

效果篇#

  /// <IsShow>True</IsShow>
  /// <IsHeader>True</IsHeader>
  /// <Title>个人信息</Title>
  /// <IsAllowedNoneRoles>False</IsAllowedNoneRoles>  
 /// <IsAllowedAllRoles>False</IsAllowedAllRoles> 

class UserInfoController{}

 

后台对应的效果

image

 

 

XML注释说明#

       /// <IsShow>True</IsShow>   表示是否在导航菜单显示
       /// <IsHeader>False</IsHeader>  表示是否是导航标题  通常用于Controler类
       /// <Title>选择用户</Title>     标题
       /// <IsAllowedNoneRoles>False</IsAllowedNoneRoles>  是否允许匿名访问
       /// <IsAllowedAllRoles>False</IsAllowedAllRoles>   是否允许所有登录用户访问

 

读取XML注释#

首先配置MVC项目,生成XML文件

属性 --生成  -- 输出

image

 

  在网站启动的时候,执行初始化任务

// 执行启动任务
            IoC.ResolveAll().ForEach(t => t.Execute());

 

相关代码:

///
    /// 启动任务
    ///
    public interface IBootstrapperTask
    {
        void Execute();
    }

 

具体实现代码:

 

代码说明#

 

1、需要在系统启动时执行,放在Global.asax中即可

2、每次加载时只创建不存在的记录(CreateResourceIfNotrExist)

3、读取时用到了反射,用于读取控制器和方法,用返回值和类型做为过滤条件

关注作者

欢迎关注作者微信公众号, 一起交流软件开发:欢迎关注作者微信公众号

posted @   JadePeng  阅读(2533)  评论(4编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示
CONTENTS