//------------------------------------------------------------------------------
// <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);
}
}
}
概述:
Provides access/security check to restrict only blog owners/admin from using the the current weblog
类图:
1. Authorize方法:
/// <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);
}
/// 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);
}
程序操作步骤:
(1) 执行基类的一些验证
(2) 如果当前用户是匿名用户,抛出异常
(3) 如果当前用户不是管理员,验证当前用户是否有发帖的权限。
该方法用到了CSException类和Permission类和CSExceptionType枚举结构
该类的类图已经关联类图如下:
浙公网安备 33010602011771号