zoukankan      html  css  js  c++  java
  • Pixysoft.Framework.Noebe.Security 开发实录


    正在重构同步层,考虑到权限问题,想了一套解决方案。

    可是做到一般,发现行不通,同步层的权限控制是不确定的,根本不能通过事先控制。

    可是我想的方案有这么完美,可以控制到表、操作、sql,于是做一个单独的模块。

    主要针对:

    1. 表名+操作类型

    2. sql

    2种情况进行权限控制。同时使用了一些反射技巧,方便权限的部署。

    开发完成:

     在代码使用标注,表示当前sql有权限

            [NoebeAccessDelcaration]
            
    private static string sql = "SELECT * FROM TB_USER";

    部署权限:

    代码
                INoebeAccessDeclaration declaration = AppSecurityNoebeManager.CreateAccessDeclaration("testnoebe");
                declaration.CreateAccessItem(Assembly.GetExecutingAssembly());
                declaration.CreateAccessItem(
    "TB_USER", SqlType.Select);
                AppSecurityNoebeManager.DeploySecurity(declaration);

    则当前权限testnoebe,对应了2个权限明细,使用的时候:

    代码
    NoebeManagerAdapter.Instances[noebeid].Initializes(AppSecurityNoebeManager.Instance, NoebeManager.Instance);

    User user 
    = SecurityDesigner.Instance.UserSearch("PIXYSOFT");
    AppSecurityManager.Instance.Login(
    "PIXYSOFT""xxxxxx");

    IAdvNoebeCommand command 
    = NoebeManagerAdapter.Instances[noebeid].SliceNoebeCommand;

    即可。

    权限的层次:

    ROLE = PIXYSOFT.FRAMEWORK.

     PERMISSION = 自定义

    当用户assign了ROLE之后,就拥有了对应的权限。 

  • 相关阅读:
    JAVA中对Cookie的操作
    springboot 快速开发的定制补充
    centos7 安装 mysql5.7 版本(全)
    springboot redis-cache 自动刷新缓存
    spring-data-redis-cache 使用及源码走读
    Redis 相关功能和实用命令(五)
    Redis 集群(三)
    Redis 主从,哨兵,集群实战(四)
    redis 主从复制和哨兵模式(二)
    导出 mysql 数据到 redis
  • 原文地址:https://www.cnblogs.com/zc22/p/1683811.html
Copyright © 2011-2022 走看看