zoukankan      html  css  js  c++  java
  • mojoPortal学习笔记之页面访问权限控制


       默认状态下,文章可以被搜索引擎找到网页地址,且能打开并访问之。某些栏目如果不希望被访问到,需要修改页面代码。

      步骤如下:
        在WebUser类中添加如下方法:

        
      public static bool HasReadPermissions(int siteID, int moduleID, int pageID)
            
    {
                
    if (HttpContext.Current == null || HttpContext.Current.User == nullreturn false;

                
    if (IsAdmin || IsContentAdmin) return true;

                Module module 
    = new Module(moduleID, pageID);
                PageSettings pageSettings 
    = new PageSettings(siteID, module.PageID);
                
    if (IsInRoles(pageSettings.AuthorizedRoles) || IsInRoles(module.AuthorizedEditRoles))
                
    {
                    
    return true;
                }


                
    if (module.EditUserID > 0)
                
    {
                    SiteSettings siteSettings 
    = (SiteSettings)HttpContext.Current.Items["SiteSettings"];
                    SiteUser siteUser 
    = new SiteUser(siteSettings, HttpContext.Current.User.Identity.Name);
                    
    if (module.EditUserID == siteUser.UserID)
                    
    {
                        
    return true;
                    }

                }


                
    return false;
            }



    对与要控制的页面,修改Page_Load 方法,如下:

      private void Page_Load(object sender, EventArgs e)
            
    {
                SecurityHelper.DisableBrowserCache();
                LoadParams();

                
    if (!WebUser.HasReadPermissions (siteSettings.SiteID, ModuleID, CurrentPage.PageID))
                
    {
                            SiteUtils.RedirectToAccessDeniedPage();
                }


                
    if (parametersAreInvalid)
                
    {
                    
    this.pnlBlog.Visible = false;
                    
    return;
                }


                GetModuleSettings();
                SetupCss();
                PopulateLabels();

                
    if (!IsPostBack && ModuleID > 0 && ItemID > 0)
                
    {
                    
                    
    if (Context.User.Identity.IsAuthenticated)
                    
    {
                        
    if (WebUser.HasEditPermissions(siteSettings.SiteID, ModuleID, CurrentPage.PageID))
                        
    {
                            IsEditable 
    = true;
                        }

                    }


                    PopulateControls();
                }

                

            }
  • 相关阅读:
    配置sql server 2000以允许远程访问
    SQLServer大数据量插入BULK INSERT
    【项目经理之修炼(5)】《基础篇》别把项目成功当目标(转)
    C#XML文件操作类
    winform窗体总在所有窗体最上层
    配置VSS2005的Internet访问(转)
    U盘引导盘制作
    【项目经理之修炼(4)】《基础篇》故事的主角是你吗?(转)
    SQLServer收缩数据库日志
    【项目经理之修炼(1)】《序章》关于要写给谁看的问题(转)
  • 原文地址:https://www.cnblogs.com/wenjie/p/1173822.html
Copyright © 2011-2022 走看看