我的ORM之七-- 权限

我的ORM索引

如菜单表。

每个角色能够看到的菜单是不同的。

项目方案:

登录时取得能看到哪些菜单,如: Id: 1,2,3,4,10

在对查询时,截获 OnReading 事件,对Where条件进行加工,添加 Id in( 1,2,3,4,10)  

设置当前执行上下文

using (var conf = new MyOqlConfigScope(ReConfigEnum.SkipPower))
{
      //不进行权限过滤,可劲查。
      return usr;
}
ReConfigEnums是一个MyOql内部枚举,定义如下:
   /// <summary>
    /// 配置MyOql作用域
    /// </summary>
    [Flags]
    public enum ReConfigEnum
    {
        /// <summary>
        /// 忽略权限验证
        /// </summary>
        SkipPower = 0x1,

        /// <summary>
        /// 忽略使用缓存
        /// </summary>
        SkipCache = 0x2,

        /// <summary>
        /// 忽略Log
        /// </summary>
        SkipLog = 0x4,

        /// <summary>
        /// 使用DbName,不进行转义
        /// </summary>
        UseDbName = 0x8,

        ///// <summary>
        ///// 不使用列别名
        ///// </summary>
        //IgnoreDbAliasName = 0x16,

        /// <summary>
        /// 脏读模式,不读取未提交信息。
        /// </summary>
        ReadPast = 0x20,

        /// <summary>
        /// 脏读模式,读取未提交信息
        /// </summary>
        NoLock = 0x40,

        /// <summary>
        /// 默认的等待事务完成模式。
        /// </summary>
        WaitLock = 0x80,

        /// <summary>
        /// 截断长度存入数据库(插入,更新时)
        /// </summary>
        CutLength2Db = 0x100,

        /// <summary>
        /// 使用显式ID
        /// </summary>
        IdentityInsert = 0x1000,
    }

 

 

你可能感兴趣的:(orm)