FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1584|回复: 0
打印 上一主题 下一主题

忘记带优盘,这样保存自己的代码,求别删除。。。PageBase

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-18 15:20:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#region OnInit

        protected override void OnInit(EventArgs e)
        {
            if (!IsPostBack)
            {
                if (LoginHelp.loginSuccessInfo == null)
                {
                    Response.Redirect("Login.aspx");
                }
                ViewPowerCheck();
            }
            base.OnInit(e);
        }

        public void ViewPowerCheck()
        {
            //当前页面没有浏览权限,不能访问
            if (!PowerCheck("浏览"))
            {
                Response.Write("你没有权限访问此页面!");
                Response.End();
            }
        }

        #endregion

        #region PageModule

        private string module=string.Empty;
        /// <summary>
        /// 当前页面所属模块
        /// </summary>
        public string Module
        {
            get { return module; }
            set { module = value; }
        }

        #endregion

        #region 检查操作权限

        /// <summary>
        /// 检测当前页面是否有操作权限powerName
        /// </summary>
        /// <param name="powerName">权限名称</param>
        /// <returns></returns>
        public bool PowerCheck(string powerName)
        {
            //当前页面没有分配模块,默认拥有所有操作权限
            if (string.IsNullOrEmpty(Module))
            {
                return true;
            }
            using (var ctx = new HSQDataDataContext())
            {
                var lModule = from p in ctx.OT_Module
                              where p.Name == Module
                              select p.Id;
                var lOperate = from p in ctx.OT_Operate
                               where p.Name == powerName
                               select p.Id;
                if (lModule.Count() > 0 && lOperate.Count() > 0)
                {
                    foreach (var l in LoginHelp.loginSuccessInfo.ListRoleID)
                    {
                        var lModuleOperate = from p in ctx.OT_RoleModule
                                             where p.RoleId == l
                                             select p.ModuleOperateId;
                        if (lModuleOperate.Count() == 0)
                            return false;
                        var lpower = from p in ctx.OT_ModuleOperate
                                     where lModuleOperate.Contains(p.Id) && p.ModuleId == lModule.First() && p.OperateId == lOperate.First()
                                     select p;
                        if (powerName.Count() > 0)
                            return true;
                    }
                }
            }
            return false;
        }

        /// <summary>
        /// 检查当前用户是否有指定模块的权限powerName
        /// </summary>
        /// <param name="moduleName"></param>
        /// <param name="powerName"></param>
        /// <returns></returns>
        public bool PowerCheck(string moduleName, string powerName)
        {
            if (string.IsNullOrEmpty(Module))
            {
                return true;
            }
            using (var ctx = new HSQDataDataContext())
            {
                var lModule = from p in ctx.OT_Module
                              where p.Name == moduleName
                              select p.Id;
                var lOperate = from p in ctx.OT_Operate
                               where p.Name == powerName
                               select p.Id;
                if (lModule.Count() > 0 && lOperate.Count() > 0)
                {
                    foreach (var l in LoginHelp.loginSuccessInfo.ListRoleID)
                    {
                        var lModuleOperate = from p in ctx.OT_RoleModule
                                             where p.RoleId == l
                                             select p.ModuleOperateId;
                        if (lModuleOperate.Count() == 0)
                            return false;
                        var lpower = from p in ctx.OT_ModuleOperate
                                     where lModuleOperate.Contains(p.Id) && p.ModuleId == lModule.First() && p.OperateId == lOperate.First()
                                     select p;
                        if (powerName.Count() > 0)
                            return true;
                    }
                }
            }
            return false;
        }

        /// <summary>
        /// 拦截通过URl访问没有浏览权限的页面
        /// </summary>
        public void CheckUrl()
        {
        }

        #endregion

        #region 处理操作权限
        #endregion

        #region 检查数据权限
        #endregion

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-9-30 14:16 , Processed in 0.044023 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表