在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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架