Visual C++ .NET/Security/CodeAccessPermission — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
Assert Deny Permissions
<source lang="csharp">
- include "stdafx.h"
using namespace System; using namespace System::IO; using namespace System::Security; using namespace System::Security::Permissions; void AssertRead() {
CodeAccessPermission ^permission = gcnew FileIOPermission(FileIOPermissionAccess::Read, "C:\\Test"); permission->Assert(); StreamReader ^sr = File::OpenText("C:\\TestFile.txt"); String ^s = sr->ReadLine(); sr->Close(); permission->RevertAssert(); Console::WriteLine("Successful Read");
} void NoAssertRead() {
StreamReader ^sr = File::OpenText("C:\\TestFile.txt"); String ^s = sr->ReadLine(); sr->Close(); Console::WriteLine("Successful Read");
} void main() {
CodeAccessPermission ^permissionRead = gcnew FileIOPermission(FileIOPermissionAccess::Read, "C:\\Test"); permissionRead->Deny(); try { AssertRead(); NoAssertRead(); } catch(SecurityException^) { Console::WriteLine("Failed To Read"); } permissionRead->RevertDeny(); CodeAccessPermission ^permissionWrite = gcnew FileIOPermission(FileIOPermissionAccess::Write, "C:\\Test");
permissionWrite->PermitOnly(); try { AssertRead(); NoAssertRead(); } catch(SecurityException^) { Console::WriteLine("Failed To Read"); } permissionWrite->RevertPermitOnly();
}
</source>