随笔 - 547  文章 - 213 评论 - 417 阅读 - 107万

    在CommunityServer中,有些页面是只有管理员才能使用的,因此这些页面需要特别的身份验证。
    对于这类页面,CommunityServer采用了一个页面基类,其他所有的类都继承于这个基类,在这个基类中对用户的身份进行验证。
 下面是这个基类的源代码:

//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using CommunityServer.Blogs.Controls;
using CommunityServer.Blogs.Components;
using CommunityServer.Components;
namespace CommunityServer.Blogs.Controls
{
    
/// <summary>
    
/// Provides access/security check to restrict only blog owners/admin from using the the current weblog
    
/// </summary>
    public abstract class WeblogAdminTemplatedWebControl : WeblogTemplatedWebControl
    {
        
public WeblogAdminTemplatedWebControl()
        {
          
        }

        
/// <summary>
        
/// Overrides Authorize and validates the current users has write access to this blogs content
        
/// </summary>
        
/// <param name="w"></param>
        protected override void Authorize(Weblog w)
        {
            
base.Authorize (w);

            
if(CurrentUser.IsAnonymous)
                
throw new CSException(CSExceptionType.AccessDenied,"Anonymous Blog Posting Access");

            
if(!CurrentUser.IsBlogAdministrator)
                Permissions.AccessCheck(w,Permission.Post,CurrentUser);
            
        }

  

    }
}

下面是类WeblogAdminTemplatedWebControl的渊源






下面是所有继承于WeblogAdminTemplatedWebControl类的WebControl类:


    /// <summary>
    
/// Displays an interface for managing a blog's comments and traceback.
    
/// </summary>
    public class BlogFeedbackAdmin : WeblogAdminTemplatedWebControl 

    
public class BlogSettingsAdmin : WeblogAdminTemplatedWebControl 

    
/// <summary>
    
/// Summary description for CategoryManager.
    
/// </summary>
    public class CategoryEditor : WeblogAdminTemplatedWebControl

    
/// <summary>
    
/// Summary description for CategoryManager.
    
/// </summary>
    public class CategoryManager : WeblogAdminTemplatedWebControl

    
public class ContentList : WeblogAdminTemplatedWebControl 

    
/// <summary>
    
/// Enables creating and editing WeblogPosts
    
/// </summary>
    public class CreateEditBlogPost : WeblogAdminTemplatedWebControl 

    
/// <summary>
    
/// Summary description for ManageBlogRoll.
    
/// </summary>
    public class ManageBlogRoll : WeblogAdminTemplatedWebControl

    
public class WeblogPermissionAdmin : WeblogAdminTemplatedWebControl 


    
/// <summary>
    
/// Summary description for WeblogReferralList.
    
/// </summary>
    public class WeblogReferralList : WeblogAdminTemplatedWebControl

    
/// <summary>
    
/// 日志共享到论坛
    
/// </summary>
    public class WeblogPostToForumPost : WeblogAdminTemplatedWebControl 

posted on   今夜太冷  阅读(287)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示