在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);
}
}
}
// <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
/// 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
浙公网安备 33010602011771号