功能权限在使用之前,必须进行注册,将功能注册到系统,才能管理用户是否具有某种功能的权限,在业务逻辑中决断用户是否具有某种权限才不会失败。
功能注册必须使用两个自定义属性:
IBeamSecurityAttribute 和 IBeamSecurityFlagAttribute
定义如下:
/// <summary>
/// “IBeamSecurityAttribute” 提供了一个能够应用在类的成员上的属性标签以执行访问者访问类成员时的授权。
/// </summary>
[AttributeUsageAttribute(AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = false)]
public sealed class IBeamSecurityAttribute : Attribute
/// <summary>
///功能标识属性
/// </summary>
[AttributeUsageAttribute(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)]
public sealed class IBeamSecurityFlagAttribute : Attribute
所在组件:IBeamMDAACore.dll
名称空间:IBeam.MDAA.Objects
用法举例:
标记类具有功能定义:
[IBeamSecurityFlag()]
[Serializable()]
public class Products : BusinessBase<Products>
功能定义,标记在功能方法上:
[IBeamSecurity(FunctionID = ACPLID.FunAddProducts, Name = "添加产品",
Category = "进销存产品管理", Description = "赋予用户添加产品的权限")]
public static bool CanAdd()
{
return Csla.ApplicationContext.User.IsAllowed(ACPLID.FunAddProducts);
}