后台登录安全权限验证二

上回我们说到了SecurityPage类,也就是关于后台的所有页面都要继承这个类。现在我们让所有后台页面继承SecurityPage.cs这样就把所有的验证重构到这一个类中。一些验证的业务逻辑就在这里进行了(主要来验证用户在该页面有哪些操作权限),这样看起来就方面多了。那么我看看看这个类中都包含一些什么元素呢?

public class SecurityPage:BasePage

{

      //Methods
        private static CheckPurviewElement checkPurviewElement;        //这两个类 类型变量主要是和自定义配置文件中的结点对应   后面详细讲。
        private static CheckSecurityCodeElement checkSecurityCodeElement;

        public SecurityPage()
        {
            InitializeConfigElement();  
        }

      //这里初始化上面声明的两个类,实际就是读取PageSecurity.config配置文件下对应结点的元素。

      private static void InitializeConfigElement() 
        {
            if (checkSecurityCodeElement == null)
            {

                 //我们通过读取配置文件的结点 返回一个pageSecuritySection对象。
                PageSecuritySection section = WebConfigurationManager.GetSection("PWeb/PageSecurity") as PageSecuritySection;
                if (section != null)
                {
                    checkSecurityCodeElement = section.CheckSecurityCode;
                }

               ...................................略
            }

 

        //PageSecuritySection的全貌会慢慢分析。

        protected override void OnInit(EventArgs e)   //我们在OnInit事件中判断用户是否有权限来登陆后台。
         {
            base.OnInit(e);
            this.SetViewStateUserKey();

            if (!PWContext.Current.User.IsSuperAdmin)   //PWContext后面讲解。从方法中我们可以推断出:判断是否是超级管理员。如果不是则执行下面语句。
            {
                this.CheckPurview();     //该方法的主要作用是判断非超级管理员对页面有哪些权限。
             }
           
         }

        protected virtual void CheckPurview()
        {

              //判断权限的地方      

        }

}

注:“PWeb/PageSecurity”映射配置文件中Config\PageSecurity.config文件。

<PWeb>
      <PageSecurity configSource="Config\PageSecurity.config"/>
      <TaskSchedule configSource="Config\TaskSchedule.config"/>
</PWeb>

 

待续。。。。。

你可能感兴趣的:(安全)