This documentation is archived and is not being maintained.
ResourcePermissionBaseEntry Class
Visual Studio 2010
Defines the smallest unit of a code access security permission set.
Assembly: System (in System.dll)
The ResourcePermissionBaseEntry type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ResourcePermissionBaseEntry() | Initializes a new instance of the ResourcePermissionBaseEntry class. |
![]() | ResourcePermissionBaseEntry(Int32, array<String>) | Initializes a new instance of the ResourcePermissionBaseEntry class with the specified permission access and permission access path. |
| Name | Description | |
|---|---|---|
![]() | PermissionAccess | Gets an integer representation of the access level enumeration value. |
![]() | PermissionAccessPath | Gets an array of strings that identify the resource you are protecting. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
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.dll> using namespace System; using namespace System::Security::Permissions; using namespace System::Collections; [Flags] public enum class MailslotPermissionAccess { None = 0, Send = 1 << 1, Receive = 1 << 2 | MailslotPermissionAccess::Send }; [Serializable] public ref class MailslotPermissionEntry { private: String^ name; String^ machineName; MailslotPermissionAccess permissionAccess; internal: MailslotPermissionEntry( ResourcePermissionBaseEntry^ baseEntry ) { this->permissionAccess = (MailslotPermissionAccess)baseEntry->PermissionAccess; this->name = baseEntry->PermissionAccessPath[ 0 ]->ToString(); this->machineName = baseEntry->PermissionAccessPath[ 1 ]->ToString(); } ResourcePermissionBaseEntry^ GetBaseEntry() { array<String^>^newStrings = {this->Name,this->MachineName}; ResourcePermissionBaseEntry^ baseEntry = gcnew ResourcePermissionBaseEntry( (int)(this->PermissionAccess),newStrings ); return baseEntry; } public: MailslotPermissionEntry( MailslotPermissionAccess permissionAccess, String^ name, String^ machineName ) { this->permissionAccess = permissionAccess; this->name = name; this->machineName = machineName; } property String^ Name { String^ get() { return this->name; } } property String^ MachineName { String^ get() { return this->machineName; } } property MailslotPermissionAccess PermissionAccess { MailslotPermissionAccess get() { return this->permissionAccess; } } }; [Serializable] public ref class MailslotPermission: public ResourcePermissionBase { private: ArrayList^ innerCollection; void SetNames() { this->PermissionAccessType = MailslotPermissionAccess::typeid; array<String^>^newStrings = {"Name","Machine"}; this->TagNames = newStrings; } internal: void AddPermissionAccess( MailslotPermissionEntry^ entry ) { ResourcePermissionBase::AddPermissionAccess( entry->GetBaseEntry() ); } void Clear() { ResourcePermissionBase::Clear(); } void RemovePermissionAccess( MailslotPermissionEntry^ entry ) { ResourcePermissionBase::RemovePermissionAccess( entry->GetBaseEntry() ); } public: MailslotPermission() { SetNames(); } MailslotPermission( PermissionState state ) : ResourcePermissionBase( state ) { SetNames(); } MailslotPermission( MailslotPermissionAccess permissionAccess, String^ name, String^ machineName ) { SetNames(); this->AddPermissionAccess( gcnew MailslotPermissionEntry( permissionAccess,name,machineName ) ); } MailslotPermission( array<MailslotPermissionEntry^>^permissionAccessEntries ) { SetNames(); if ( permissionAccessEntries == nullptr ) throw gcnew ArgumentNullException( "permissionAccessEntries" ); for ( int index = 0; index < permissionAccessEntries->Length; ++index ) this->AddPermissionAccess( permissionAccessEntries[ index ] ); } property ArrayList^ PermissionEntries { ArrayList^ get() { if ( this->innerCollection == nullptr ) this->innerCollection = gcnew ArrayList; this->innerCollection->InsertRange( 0, safe_cast<ICollection^>(ResourcePermissionBase::GetPermissionEntries()) ); return this->innerCollection; } } };
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show:
