权限控制的另类做法

可以用把数字转换为二进制来反推某一个位置,来知道是否某个组开发给用户,虽然并不十分常用,但是挺有意思。

 /// <summary>
        /// 由权限和创建权限字符串
        /// </summary>
        /// <param name="PowerSum"></param>
        /// <returns></returns>
        public static string PowerStrCreate(int PowerSum)
        {
            string Result = "";
            int Calc = PowerSum;
            while (Calc > 0)
            {
                Result = Result + Calc % 2;
                Calc /= 2;
            }
            //if (PowerSum % 2 == 0)
            //    Result = "0" + Result;
            while (Result.Length < 20)
            {
                Result += "0";
            }
            return Result;
        }

   这边先根据数字来得到二进制,比如说8的二进制是1000,然后用下来的数字位数来判断是否可以展示:

  /// <summary>
        /// 权限检查
        /// </summary>
        /// <param name="User"></param>
        /// <param name="PowerCheck"></param>
        /// <returns></returns>
        public static bool PowerCheck(UserInfo User, int PowerCheck)
        {
            if (PowerCheck < 0)
                return true;
            bool Result = false;
            try
            {
                if (User.PowerStr[PowerCheck] == '1')
                    Result = true;
            }
            catch { }
            return Result;
        }

当然前端页面要做控制

     if (PowerCheck((int)Fund.Web.Admin.Web.EntityLayer.User.UserPower.HistoryNav))
                        {
                    %>

                    <div class="itembox">
                        <span class="itemtitle">基金最新净值</span>
                        <ul>
                            <li><a href="/NewNav/NVInit.aspx">封闭式净值初始化</a></li>
                            <li><a href="/NewNav/OpenNV.aspx">开放式基金净值</a></li>
                            <li><a href="/NewNav/QDNV.aspx">QDII型基金净值</a></li>
                            <li><a href="/NewNav/HBNV.aspx">货币型基金净值</a></li>
                            <li><a href="/NewNav/LCNV.aspx">理财型基金净值</a></li>
                            <li><a href="/NewNav/CloseNav.aspx">封闭式基金净值</a></li>
                        </ul>
                    </div>
                    <div class="itembox">
                        <span class="itemtitle">基金历史净值</span>
                        <ul>
                            <%--<li><a href="/HistoryNav/OFNV.aspx">历史净值</a></li>--%>
                             <li><a href="/HistoryNav/HighEndNetFinancial.aspx">高端理财净值</a></li>
                            <li><a href="/HistoryNav/MFMU.aspx">货币基金净值</a></li>
                        </ul>
                    </div>
                    <%  
                        } 

  这样定义一组枚举变量的数值就能让某一位来代表一个权限。

 public enum UserPower
    {
        Main = 0,
        ClassFund = 1,
        FeeRate = 2,
        HistoryNav = 3,
        Evaluate = 4,
        Research = 5,
        TopicMan = 6,
        FAQ = 7,
        TaskWrite=8,
        SC=9,
        NavGrab=10
    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值