Visual C++ .NET/Security/SecurityManager

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

Iterate backwards removing all instances of "ReadOnly Secure Group"

<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() {

   CodeGroup^ machine;
   System::Collections::IEnumerator^ ph = SecurityManager::PolicyHierarchy();
   for (int i = machine->Children->Count - 1; i >= 0; i--)
   {
       if(((CodeGroup^)machine->Children[i])->Name == "ReadOnly Secure Group")
       {
           machine->RemoveChild(((CodeGroup^)machine->Children[i]));
       }
   }
   SecurityManager::SavePolicy();

}

 </source>


Iterate through policy hierarchy to get Machine Code group

<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() {

   CodeGroup^ machine;
   System::Collections::IEnumerator^ ph = SecurityManager::PolicyHierarchy();
   while( ph->MoveNext() ) 
   {
       PolicyLevel^ machinePolicyLevel = (PolicyLevel^)ph->Current;
       if (machinePolicyLevel->Label == "Machine") 
       {
           machine = machinePolicyLevel->RootCodeGroup;
           break;
       }
   }
   SecurityManager::SavePolicy();

}

 </source>