ResourcePermissionBase Class
Assembly: System (in system.dll)
[SerializableAttribute] public abstract class ResourcePermissionBase : CodeAccessPermission, IUnrestrictedPermission
/** @attribute SerializableAttribute() */ public abstract class ResourcePermissionBase extends CodeAccessPermission implements IUnrestrictedPermission
SerializableAttribute public abstract class ResourcePermissionBase extends CodeAccessPermission implements IUnrestrictedPermission
Note |
|---|
| The ResourcePermissionBase class compares strings using ordinal sort rules and ignores the case of the strings being compared. |
The following example inherits from the ResourcePermissionBase class. 4 kinds of constructors are implemented. The example also provides an implementation of a class called MailslotPermissionEntry. The PermissionAccessType property is then privately set to the type of MailslotPermissionEntry. The TagNames property is set privately to "Name" and "Machine".
using System; using System.Security.Permissions; using System.Collections; [Serializable()] public class MailslotPermission: ResourcePermissionBase { private ArrayList innerCollection; public MailslotPermission() { SetNames(); } public MailslotPermission(PermissionState state):base(state) { SetNames(); } public MailslotPermission(MailslotPermissionAccess permissionAccess, string name, string machineName) { SetNames(); this.AddPermissionAccess(new MailslotPermissionEntry(permissionAccess, name, machineName)); } public MailslotPermission(MailslotPermissionEntry[] permissionAccessEntries) { SetNames(); if (permissionAccessEntries == null) throw new ArgumentNullException("permissionAccessEntries"); for (int index = 0; index < permissionAccessEntries.Length; ++index) this.AddPermissionAccess(permissionAccessEntries[index]); } public ArrayList PermissionEntries { get { if (this.innerCollection == null) this.innerCollection = new ArrayList(); this.innerCollection.InsertRange(0,base.GetPermissionEntries()); return this.innerCollection; } } internal void AddPermissionAccess(MailslotPermissionEntry entry) { base.AddPermissionAccess(entry.GetBaseEntry()); } internal new void Clear() { base.Clear(); } internal void RemovePermissionAccess(MailslotPermissionEntry entry) { base.RemovePermissionAccess(entry.GetBaseEntry()); } private void SetNames() { this.PermissionAccessType = typeof(MailslotPermissionAccess); this.TagNames = new string[]{"Name","Machine"}; } } [Flags] public enum MailslotPermissionAccess { None = 0, Send = 1 << 1, Receive = 1 << 2 | Send, } [Serializable()] public class MailslotPermissionEntry { private string name; private string machineName; private MailslotPermissionAccess permissionAccess; public MailslotPermissionEntry(MailslotPermissionAccess permissionAccess, string name, string machineName) { this.permissionAccess = permissionAccess; this.name = name; this.machineName = machineName; } internal MailslotPermissionEntry(ResourcePermissionBaseEntry baseEntry) { this.permissionAccess = (MailslotPermissionAccess)baseEntry.PermissionAccess; this.name = baseEntry.PermissionAccessPath[0]; this.machineName = baseEntry.PermissionAccessPath[1]; } public string Name { get { return this.name; } } public string MachineName { get { return this.machineName; } } public MailslotPermissionAccess PermissionAccess { get { return this.permissionAccess; } } internal ResourcePermissionBaseEntry GetBaseEntry() { ResourcePermissionBaseEntry baseEntry = new ResourcePermissionBaseEntry((int)this.PermissionAccess, new string[] {this.Name,this.MachineName}); return baseEntry; } }
import System.*;
import System.Security.Permissions.*;
import System.Collections.*;
/** @attribute Serializable()
*/
public class MailSlotPermission extends ResourcePermissionBase
{
private ArrayList innerCollection;
public MailSlotPermission()
{
SetNames();
} //MailSlotPermission
public MailSlotPermission(PermissionState state)
{
super(state);
SetNames();
} //MailSlotPermission
public MailSlotPermission(MailSlotPermissionAccess permissionAccess,
String name, String machineName)
{
SetNames();
this.AddPermissionAccess(new MailSlotPermissionEntry(permissionAccess,
name, machineName));
} //MailSlotPermission
public MailSlotPermission(MailSlotPermissionEntry permissionAccessEntries[])
{
SetNames();
if (permissionAccessEntries == null) {
throw new ArgumentNullException("permissionAccessEntries");
}
for (int index = 0; index < permissionAccessEntries.get_Length();
++index) {
this.AddPermissionAccess((MailSlotPermissionEntry)
permissionAccessEntries.get_Item(index));
}
} //MailSlotPermission
/** @property
*/
public ArrayList get_PermissionEntries()
{
if (this.innerCollection == null) {
this.innerCollection = new ArrayList();
}
this.innerCollection.InsertRange(0, super.GetPermissionEntries());
return this.innerCollection;
}
void AddPermissionAccess(MailSlotPermissionEntry entry)
{
super.AddPermissionAccess(entry.GetBaseEntry());
} //AddPermissionAccess
public void Clear()
{
super.Clear();
} //Clear
void RemovePermissionAccess(MailSlotPermissionEntry entry)
{
super.RemovePermissionAccess(entry.GetBaseEntry());
} //RemovePermissionAccess
private void SetNames()
{
this.set_PermissionAccessType(MailSlotPermissionAccess.class.ToType());
this.set_TagNames(new String[] { "Name", "Machine" });
} //SetNames
} //MailSlotPermission
public class MailSlotPermissionAccess
{
public static int None = 0;
public static int Send = 1 << 1;
public static int Receive = 1 << 2 | Send;
} //MailSlotPermissionAccess
/** @attribute Serializable()
*/
public class MailSlotPermissionEntry
{
private String name;
private String machineName;
private MailSlotPermissionAccess permissionAccess;
public MailSlotPermissionEntry(MailSlotPermissionAccess permissionAccess,
String name, String machineName)
{
this.permissionAccess = permissionAccess;
this.name = name;
this.machineName = machineName;
} //MailSlotPermissionEntry
MailSlotPermissionEntry(ResourcePermissionBaseEntry baseEntry)
{
this.permissionAccess =(MailSlotPermissionAccess)(Object)((
Int32)baseEntry.get_PermissionAccess());
this.name = baseEntry.get_PermissionAccessPath()[0];
this.machineName = baseEntry.get_PermissionAccessPath()[1];
} //MailSlotPermissionEntry
/** @property
*/
public String get_Name()
{
return this.name;
}//get_Name
/** @property
*/
public String get_MachineName()
{
return this.machineName;
}//get_MachineName
/** @property
*/
public MailSlotPermissionAccess get_PermissionAccess()
{
return this.permissionAccess;
}//get_PermissionAccess
ResourcePermissionBaseEntry GetBaseEntry()
{
ResourcePermissionBaseEntry baseEntry = new ResourcePermissionBaseEntry(
Convert.ToInt32((Int32)((Object)(this.get_PermissionAccess()))),
new String[] { this.get_Name(), this.get_MachineName() });
return baseEntry;
} //GetBaseEntry
} //MailSlotPermissionEntry
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Note