FileIOPermissionAttribute Constructor (SecurityAction)
.NET Framework (current version)
Initializes a new instance of the FileIOPermissionAttribute class with the specified SecurityAction.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- action
-
Type:
System.Security.Permissions::SecurityAction
One of the SecurityAction values.
| Exception | Condition |
|---|---|
| ArgumentException | The action parameter is not a valid SecurityAction. |
The following code example creates several instances of the FileIOPermissionAttribute class to set varying levels of file I/O permissions.
// This sample demonstrates the use of the FileIOPermissionAttribute class. // The sample follows the recommended procedure of first granting PermitOnly permissions, // then using a Deny on that set of granted permissions. using namespace System; using namespace System::Reflection; using namespace System::Security::Permissions; using namespace System::Security; using namespace System::IO; void PermitOnlyMethod(); void PermitOnlyTestMethod(); void TestFailed(); // This method demonstrates the use of the FileIOPermissionAttribute to create a PermitOnly permission. // Set the Read property. [FileIOPermissionAttribute(SecurityAction::PermitOnly,Read="C:\\")] // Set the PathDiscovery property. [FileIOPermissionAttribute(SecurityAction::PermitOnly, PathDiscovery="C:\\Documents and Settings\\All Users")] // Set the Append property. [FileIOPermissionAttribute(SecurityAction::PermitOnly, Append="C:\\Documents and Settings\\All Users\\Application Data")] // Set the Write property. [FileIOPermissionAttribute(SecurityAction::PermitOnly, Write="C:\\Documents and Settings\\All Users\\Application Data\\Microsoft")] // Set the All property. [FileIOPermissionAttribute(SecurityAction::PermitOnly, All="C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network")] void PermitOnlyMethod() { Console::WriteLine( "Executing PermitOnlyMethod." ); Console::WriteLine( "PermitOnly the Read permission for drive C." ); Console::WriteLine( "PermitOnly the PathDiscovery permission for \n\tC:\\Documents and Settings\\All Users." ); Console::WriteLine( "PermitOnly the Append permission for \n\tC:\\Documents and Settings\\All Users\\Application Data." ); Console::WriteLine( "PermitOnly the Write permission for \n\tC:\\Documents and Settings\\All Users\\Application Data\\Microsoft." ); Console::WriteLine( "PermitOnly the All permission for \n\tC:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network." ); PermitOnlyTestMethod(); } void PermitOnlyTestMethod() { Console::WriteLine("Executing PermitOnlyTestMethod."); try { PermissionSet^ ps = gcnew PermissionSet(PermissionState::None); ps->AddPermission(gcnew FileIOPermission(FileIOPermissionAccess::Write, "C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network\\SomeFile")); Console::WriteLine("Demanding permission to write " + "'C:\\Documents and Settings\\All Users\\Application Data\\Microsoft\\Network\\SomeFile'"); ps->Demand(); Console::WriteLine("Demand succeeded."); ps->AddPermission( gcnew FileIOPermission(FileIOPermissionAccess::Write, "C:\\")); Console::WriteLine("Demanding permission to write to drive C."); // This demand should cause an exception. ps->Demand(); // The TestFailed method is called if an exception is not thrown. TestFailed(); } catch (Exception^ e) { Console::WriteLine("An exception was thrown because of a write demand: " + e->Message); } } void TestFailed() { Console::WriteLine( "Executing TestFailed." ); Console::WriteLine( "Throwing an exception." ); throw gcnew Exception; } int main() { try { PermitOnlyMethod(); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } }
.NET Framework
Available since 1.1
Available since 1.1
Show: