Visual C++ .NET/Security/PermissionSet

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Set Security

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Security; using namespace System::Security::Permissions; using namespace System::Security::Policy; void main(){

   PermissionSet^ permSet = gcnew PermissionSet(PermissionState::None);
     
   permSet->AddPermission(gcnew SecurityPermission(PermissionState::Unrestricted));
   permSet->AddPermission(gcnew UIPermission(PermissionState::Unrestricted));
   permSet->AddPermission(gcnew FileIOPermission(FileIOPermissionAccess::Read,"C:\\Test"));
   PolicyStatement^ policy = gcnew PolicyStatement(permSet);
   IMembershipCondition^ membership = gcnew UrlMembershipCondition("http://192.168.1.1/*");
   CodeGroup^ codeGroup = gcnew UnionCodeGroup(membership, policy);
   codeGroup->Description = "C:\\";
   codeGroup->Name = "ReadOnly Secure Group";
   System::Collections::IEnumerator^ ph = SecurityManager::PolicyHierarchy();
   while( ph->MoveNext() ) 
   {
       PolicyLevel^ pl = (PolicyLevel^)ph->Current;
       if( pl->Label == "Machine" ) 
       {
           // Add code group to Machine policy
           pl->RootCodeGroup->AddChild(codeGroup);
           break;
       }
   }
   SecurityManager::SavePolicy();

}

 </source>