• c# 权限二进制操作


       /// <summary>
        /// 位运算,二进制
        /// </summary>
        [Flags]
        public enum PermissionEnum
        {
            /// <summary>
            /// 初始化
            /// 0000
            /// </summary>
            Init = 0,
            /// <summary>
            /// 插入
            /// 0001
            /// </summary>
            Insert = 1,
            /// <summary>
            /// 删除
            /// 0010
            /// </summary>
            Delete = 2,
            /// <summary>
            /// 更新
            /// 0100
            /// </summary>
            Update = 4,
            /// <summary>
            /// 查询
            /// 1000
            /// </summary>
            Query = 8
        }
    View Code
        class Program
        {
    
            static void Main(string[] args)
            {
                //初始化一个新增权限
                var demo = InsertPermission(PermissionEnum.Insert);
                Console.WriteLine(demo);
                //再增加一个查询权限
                demo = InsertPermission(PermissionEnum.Query, demo);
                Console.WriteLine(demo);
                //再增加一个删除权限
                demo = InsertPermission(PermissionEnum.Delete, demo);
                Console.WriteLine(demo);
                //删除一个新增权限
                demo = DeletePermission(PermissionEnum.Insert, demo);
                Console.WriteLine(demo);
                //判断是否拥有新增权限
                Console.WriteLine(GetPermission(PermissionEnum.Insert, demo));
                //判断是否拥有查询权限
                Console.WriteLine(GetPermission(PermissionEnum.Query, demo));
                Console.Read();
            }
    
            /// <summary>
            /// 增加权限
            /// </summary>
            /// <param name="perType">需要增加什么权限(增删改查)</param>
            /// <param name="userPer">用户原来的权限</param>
            /// <returns></returns>
            public static int InsertPermission(PermissionEnum perType, int userPer = (int)PermissionEnum.Init)
            {
                //或运算  真假 为真;
                return userPer | (int)perType;
            }
            /// <summary>
            /// 删除权限
            /// </summary>
            /// <param name="perType">需要删除什么权限(增删改查)</param>
            /// <param name="userPer">用户原来的权限</param>
            /// <returns></returns>
            public static int DeletePermission(PermissionEnum perType, int userPer = (int)PermissionEnum.Init)
            {
                //~补位,~000010 = 111101
                //&与,真真为真,真假为假
                return userPer & ~(int)perType;
            }
    
            /// <summary>
            /// 判断是否拥有权限
            /// </summary>
            /// <param name="perType">判断是否拥有的权限类型</param>
            /// <param name="userPer">用户原来的权限</param>
            /// <returns></returns>
            public static bool GetPermission(PermissionEnum perType, int userPer = (int)PermissionEnum.Init)
            {
                //&与,真真为真,真假为假
                //判断出来的数不等于零,那就是拥有该权限
                return (userPer & (int)perType) != 0;
            }
    View Code
  • 相关阅读:
    sql注入之payload
    cve2019-0708漏洞复现
    xss学习
    kernel panic not syncing
    nodeJS爬虫
    JS刷题自制参考知识
    HTML Cookie
    点击按钮触发div颜色改变的几种写法
    Bootstrap4布局(简要)
    jQuery实现论坛发帖Demo
  • 原文地址:https://www.cnblogs.com/xuxujiang/p/6655765.html
Copyright © 2020-2023  润新知