Project.WebUi/App_Code/MyBasePage.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Project.Model;
using Project.Common;
using System.Collections.Generic;
using Project.Bll;

namespace Project.WebUi.App_Code
{
    public class MyBasePage : System.Web.UI.Page
    {

        /// <summary>
        /// 当前登陆用户信息
        /// </summary>
        protected LoginUserInfo loginUser = null;

        private List<string> list = null;

        //重写OnLoad方法(这里来判断是否有进入页面的权限)
        protected override void OnLoad(EventArgs e)
        {
            loginUser = CommonFun.GetCookieUserData<LoginUserInfo>(this.Page);
            UserMenuBll bll = new UserMenuBll();
            list = bll.GetRoleMenuAddress(loginUser.RoleId);//有人会说这里有损性能,每进一次页面都要读数据库,其实可以用缓存解决,这里我暂时就不添加缓存了

            if (!RoleHasMenuAddress(list))//如果没有进入当前页面的权限
            {
                Response.Write("<script>alert('您没有进入该页面的权限!');</script>");
                Response.End();
            }
            else
            {
                base.OnLoad(e);
            }
        }

        //重写OnPreRenderComplete方法(这里来判断是否有页面中的按钮的权限)
        protected override void OnPreRenderComplete(EventArgs e)
        {
            base.OnPreRenderComplete(e);
            ProcessPermission(GetOperationControls(), list);  //权限按钮处理         
        }


        //判断当前角色是否拥有进入当前页面的权限
        private bool RoleHasMenuAddress(List<string> list)
        {
            bool hasPermission = false;//是否拥有权限bool变量
            if (list != null)
            {
                string path = Request.Path.Substring(Request.Path.LastIndexOf("/") + 1);//获得如 UserManage.aspx这样的当前的页面地址

                for (int i = 0; i < list.Count; i++)
                {
                    if (path == list[i].Substring(list[i].LastIndexOf("/") + 1))//当前角色是否拥有进入这个页面地址的权限
                    {
                        hasPermission = true;
后面还有 93 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。