#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6.1mscorlib.dll
#endregion
using System.Collections;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Security.Permissions;
namespace System.Security
{
//
// 摘要:
// 表示可以包含许多不同类型的权限的集合。
[ComVisible(true)]
public class PermissionSet : ISecurityEncodable, ICollection, IEnumerable, IStackWalk, IDeserializationCallback
{
//
// 摘要:
// 使用指定的 System.Security.PermissionSet 初始化 System.Security.Permissions.PermissionState
// 类的新实例。
//
// 参数:
// state:
// 指定资源访问权限集的其中一个枚举值。
//
// 异常:
// T:System.ArgumentException:
// state 参数不是有效 System.Security.Permissions.PermissionState。
public PermissionSet(PermissionState state);
//
// 摘要:
// 使用从 permSet 参数获取的初始值初始化 System.Security.PermissionSet 类的新实例。
//
// 参数:
// permSet:
// 若为权限集,则从中获取新 System.Security.PermissionSet 的值;若为 null,则创建空的 System.Security.PermissionSet。
public PermissionSet(PermissionSet permSet);
//
// 摘要:
// 获取一个值,该值表示是否保证此集合是线程安全的。
//
// 返回结果:
// 总是为 false。
public virtual bool IsSynchronized { get; }
//
// 摘要:
// 获取当前集合的根对象。
//
// 返回结果:
// 当前集合的根对象。
public virtual object SyncRoot { get; }
//
// 摘要:
// 获取一个值,该值指示集合是否为只读。
//
// 返回结果:
// 总是为 false。
public virtual bool IsReadOnly { get; }
//
// 摘要:
// 获取权限集中包含的权限对象的数目。
//
// 返回结果:
// System.Security.PermissionSet 中包含的权限对象的数目。
public virtual int Count { get; }
//
// 摘要:
// 将已编码的 System.Security.PermissionSet 从一种 XML 编码格式转换为另一种 XML 编码格式。
//
// 参数:
// inFormat:
// 表示以下编码格式之一的字符串:ASCII、Unicode 或二进制。 可能的值为 "XMLASCII" 或 "XML"、"XMLUNICODE" 和 "BINARY"。
//
// inData:
// XML 编码的权限集。
//
// outFormat:
// 表示以下编码格式之一的字符串:ASCII、Unicode 或二进制。 可能的值为 "XMLASCII" 或 "XML"、"XMLUNICODE" 和 "BINARY"。
//
// 返回结果:
// 具有指定的输出格式的加密权限集。
//
// 异常:
// T:System.NotImplementedException:
// 在所有情况下。
[Obsolete("This method is obsolete and shoud no longer be used.")]
public static byte[] ConvertPermissionSet(string inFormat, byte[] inData, string outFormat);
//
// 摘要:
// 导致当前帧以前所有的 System.Security.CodeAccessPermission.Assert 被删除且不再有效。
//
// 异常:
// T:System.InvalidOperationException:
// 当前帧不再具有以前的 System.Security.CodeAccessPermission.Assert。
[SecuritySafeCritical]
public static void RevertAssert();
//
// 摘要:
// 向 System.Security.PermissionSet 添加指定的权限。
//
// 参数:
// perm:
// 要添加的权限。
//
// 返回结果:
// 添加的权限和 System.Security.PermissionSet 中已存在的相同类型的任何权限的联合。
//
// 异常:
// T:System.InvalidOperationException:
// 从 System.Security.ReadOnlyPermissionSet 调用方法。
public IPermission AddPermission(IPermission perm);
//
// 摘要:
// 声明调用代码能够通过调用此方法的代码,访问受权限请求保护的资源,即使未对堆栈中处于较高位置的调用方授予访问该资源的权限。 使用 System.Security.PermissionSet.Assert
// 会产生安全漏洞。
//
// 异常:
// T:System.Security.SecurityException:
// 尚未向断言的 System.Security.PermissionSet 实例授予断言代码。 - 或 - 已存在一个用于当前帧的活动的 System.Security.PermissionSet.Assert。
[SecuritySafeCritical]
public void Assert();
//
// 摘要:
// 获取一个值,它指示 System.Security.PermissionSet 是否包含不派生自 System.Security.CodeAccessPermission
// 的权限。
//
// 返回结果:
// 如果 System.Security.PermissionSet 包含不派生自 System.Security.CodeAccessPermission
// 的权限,则为 true;否则为 false。
public bool ContainsNonCodeAccessPermissions();
//
// 摘要:
// 创建 System.Security.PermissionSet 的副本。
//
// 返回结果:
// System.Security.PermissionSet 的副本。
public virtual PermissionSet Copy();
//
// 摘要:
// 将此权限集的权限对象复制到 System.Array 中指定的位置。
//
// 参数:
// array:
// 要复制到的目标数组。
//
// index:
// 数组中开始复制的起始位置(从零开始)。
//
// 异常:
// T:System.ArgumentNullException:
// array 参数为 null。
//
// T:System.ArgumentException:
// array 参数具有多个维数。
//
// T:System.IndexOutOfRangeException:
// index 参数超出 array 参数的范围。
public virtual void CopyTo(Array array, int index);
//
// 摘要:
// 如果未对调用堆栈中所有较高级的调用方授予当前实例所指定的权限,则在运行时强制 System.Security.SecurityException。
//
// 异常:
// T:System.Security.SecurityException:
// 调用链中的调用方没有所需的权限。
[SecuritySafeCritical]
public void Demand();
//
// 摘要:
// 导致通过与当前 System.Security.PermissionSet 中所含类型的权限具有交集的权限的调用代码的任何 System.Security.PermissionSet.Demand
// 失败。
//
// 异常:
// T:System.Security.SecurityException:
// 对 System.Security.PermissionSet.Deny 的前一次调用已经限制当前堆栈帧的权限。
[Obsolete("Deny is obsolete and will be removed in a future release of the .NET Framework. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[SecuritySafeCritical]
public void Deny();
//
// 摘要:
// 确定指定的 System.Security.PermissionSet 或 System.Security.NamedPermissionSet 对象是否等于当前的
// System.Security.PermissionSet。
//
// 参数:
// obj:
// 将与当前 System.Security.PermissionSet 进行比较的对象。
//
// 返回结果:
// 如果指定的对象等于当前 true 对象,则为 System.Security.PermissionSet;否则为 false。
[ComVisible(false)]
public override bool Equals(object obj);
//
// 摘要:
// 通过 XML 编码重新构造具有指定状态的安全对象。
//
// 参数:
// et:
// 用于重新构造安全对象的 XML 编码。
//
// 异常:
// T:System.ArgumentNullException:
// et 参数为 null。
//
// T:System.ArgumentException:
// et 参数不是有效的权限元素。 - 或 - 不支持 et 参数的版本号。
public virtual void FromXml(SecurityElement et);
//
// 摘要:
// 返回集的权限的枚举器。
//
// 返回结果:
// 集的权限的枚举器对象。
public IEnumerator GetEnumerator();
//
// 摘要:
// 获取 System.Security.PermissionSet 对象的哈希代码,此代码适合在哈希算法和数据结构(例如哈希表)中使用。
//
// 返回结果:
// 当前 System.Security.PermissionSet 对象的哈希代码。
[ComVisible(false)]
public override int GetHashCode();
//
// 摘要:
// 如果指定类型存在于集中,则获取该类型的权限对象。
//
// 参数:
// permClass:
// 所需权限对象的类型。
//
// 返回结果:
// 权限对象的副本,其类型由 System.Security.PermissionSet 中包含的 permClass 参数指定;如果上述均不存在,则为 null。
public IPermission GetPermission(Type permClass);
//
// 摘要:
// 创建并返回一个权限集,此权限集为当前的 System.Security.PermissionSet 和指定 System.Security.PermissionSet
// 的交集。
//
// 参数:
// other:
// 与当前的 System.Security.PermissionSet 相交的权限集。
//
// 返回结果:
// 一个新权限集,它表示当前 System.Security.PermissionSet 与指定目标的交集。 如果交集为空,则此对象为 null。
public PermissionSet Intersect(PermissionSet other);
//
// 摘要:
// 获取一个值,该值指示 System.Security.PermissionSet 是否为空。
//
// 返回结果:
// 如果 true 为空,则为 System.Security.PermissionSet;否则为 false。
public bool IsEmpty();
//
// 摘要:
// 确定当前 System.Security.PermissionSet 是否为指定 System.Security.PermissionSet 的子集。
//
// 参数:
// target:
// 将要测试子集关系的权限集。 它必须是 System.Security.PermissionSet 或 System.Security.NamedPermissionSet。
//
// 返回结果:
// 如果当前 System.Security.PermissionSet 是 target 参数的子集,则为 true;否则为 false。
public bool IsSubsetOf(PermissionSet target);
//
// 摘要:
// 确定 System.Security.PermissionSet 是否为 Unrestricted。
//
// 返回结果:
// 如果 System.Security.PermissionSet 为 Unrestricted,则为 true;否则为 false。
public bool IsUnrestricted();
//
// 摘要:
// 导致所有经过调用代码以请求不是当前 System.Security.PermissionSet 的子集的任何 System.Security.PermissionSet
// 的 System.Security.PermissionSet.Demand 失败。
[SecuritySafeCritical]
public void PermitOnly();
//
// 摘要:
// 从集中删除某一类型的权限。
//
// 参数:
// permClass:
// 要删除的权限类型。
//
// 返回结果:
// 从集中删除了的权限。
//
// 异常:
// T:System.InvalidOperationException:
// 从 System.Security.ReadOnlyPermissionSet 调用方法。
public IPermission RemovePermission(Type permClass);
//
// 摘要:
// 将权限设置为 System.Security.PermissionSet,替换同一类型的任何现有权限。
//
// 参数:
// perm:
// 要设置的权限。
//
// 返回结果:
// 设置的权限。
//
// 异常:
// T:System.InvalidOperationException:
// 从 System.Security.ReadOnlyPermissionSet 调用方法。
public IPermission SetPermission(IPermission perm);
//
// 摘要:
// 返回 System.Security.PermissionSet 的字符串表示形式。
//
// 返回结果:
// System.Security.PermissionSet 的表示形式。
public override string ToString();
//
// 摘要:
// 创建安全对象及其当前状态的 XML 编码。
//
// 返回结果:
// 安全对象的 XML 编码,包括任何状态信息。
public virtual SecurityElement ToXml();
//
// 摘要:
// 创建 System.Security.PermissionSet,它是当前的 System.Security.PermissionSet 和指定的 System.Security.PermissionSet
// 的并集。
//
// 参数:
// other:
// 与当前的 System.Security.PermissionSet 形成并集的权限集。
//
// 返回结果:
// 一个新权限集,它表示当前 System.Security.PermissionSet 与指定 System.Security.PermissionSet
// 的并集。
public PermissionSet Union(PermissionSet other);
//
// 摘要:
// 向 System.Security.PermissionSet 添加指定的权限。
//
// 参数:
// perm:
// 要添加的权限。
//
// 返回结果:
// 添加的权限和 System.Security.PermissionSet 中已存在的相同类型的任何权限的联合;如果 perm 是 null,则为 null。
//
// 异常:
// T:System.InvalidOperationException:
// 从 System.Security.ReadOnlyPermissionSet 调用方法。
protected virtual IPermission AddPermissionImpl(IPermission perm);
//
// 摘要:
// 返回集的权限的枚举器。
//
// 返回结果:
// 集的权限的枚举器对象。
protected virtual IEnumerator GetEnumeratorImpl();
//
// 摘要:
// 如果集中存在指定类型,则获取该类型的权限对象。
//
// 参数:
// permClass:
// 权限对象的类型。
//
// 返回结果:
// 权限对象的副本,其类型由 permClass 参数指定,且它包含在 System.Security.PermissionSet 中;如果上述均不存在,则为
// null。
protected virtual IPermission GetPermissionImpl(Type permClass);
//
// 摘要:
// 从集中删除某一类型的权限。
//
// 参数:
// permClass:
// 要删除的权限类型。
//
// 返回结果:
// 从集中删除了的权限。
//
// 异常:
// T:System.InvalidOperationException:
// 从 System.Security.ReadOnlyPermissionSet 调用方法。
protected virtual IPermission RemovePermissionImpl(Type permClass);
//
// 摘要:
// 将权限设置为 System.Security.PermissionSet,替换同一类型的任何现有权限。
//
// 参数:
// perm:
// 要设置的权限。
//
// 返回结果:
// 设置的权限。
//
// 异常:
// T:System.InvalidOperationException:
// 从 System.Security.ReadOnlyPermissionSet 调用方法。
protected virtual IPermission SetPermissionImpl(IPermission perm);
}
}