ResourcePermissionBaseEntry Class
Defines the smallest unit of a code access security permission set.
Assembly: System (in System.dll)
| 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 the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | 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; } } };
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


