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之后,就拥有了对应的权限。 

  • 相关阅读:
    C# DataConstruct 数据结构关于 Array,ArrayList,List,HashTable,Dictionnary的学习记录
    Moq 在.net Core 单元测试中的使用
    记录一些 APM 仓储
    .net core Swagger 过滤部分Api
    C# Conversion Keywords
    (转载)C# 枚举 FlagsAttribute用法
    [慢更]Sublime Text 快捷键及使用过的插件
    Docker发布程序那些事
    RabbitMQ 学习日记
    Linux Tomcat7.0安装配置实践总结
  • 原文地址:https://www.cnblogs.com/zc22/p/1683811.html
Copyright © 2011-2022 走看看