Freigeben über


DnsPermission.Intersect(IPermission) Methode

Definition

Erstellt eine Berechtigungsinstanz, die die Schnittmenge aus der aktuellen Berechtigungsinstanz und der angegebenen Berechtigungsinstanz ist.

public:
 override System::Security::IPermission ^ Intersect(System::Security::IPermission ^ target);
public override System.Security.IPermission Intersect (System.Security.IPermission target);
override this.Intersect : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Intersect (target As IPermission) As IPermission

Parameter

target
IPermission

Die DnsPermission-Instanz, von der mit der aktuellen Instanz eine Schnittmenge gebildet werden soll.

Gibt zurück

Eine DnsPermission-Instanz, die die Schnittmenge aus der aktuellen DnsPermission-Instanz und der angegebenen DnsPermission-Instanz darstellt oder null, wenn die Schnittmenge leer ist. Wenn die aktuelle Instanz und target uneingeschränkt sind, gibt diese Methode eine neue, uneingeschränkte DnsPermission-Instanz zurück, andernfalls wird null zurückgegeben.

Ausnahmen

target ist weder eine DnsPermission noch null.

Beispiele

Im folgenden Beispiel wird eine Berechtigungsinstanz erstellt, die die Schnittmenge der aktuellen Berechtigungsinstanz und der angegebenen Berechtigungsinstanz darstellt.

public:
   void useDns()
   {
      // Create a DnsPermission instance.
      dnsPermission1 = gcnew DnsPermission( PermissionState::Unrestricted );
      dnsPermission2 = gcnew DnsPermission( PermissionState::None );
      // Check for permission.
      dnsPermission1->Demand();
      dnsPermission2->Demand();
      Console::WriteLine( "Attributes and Values of first DnsPermission instance :" );
      PrintKeysAndValues( dnsPermission1->ToXml()->Attributes );
      Console::WriteLine( "Attributes and Values of second DnsPermission instance :" );
      PrintKeysAndValues( dnsPermission2->ToXml()->Attributes );
      Console::WriteLine( "Union of both instances : " );
      MyUnion();
      Console::WriteLine( "Intersection of both instances : " );
      MyIntersection();
   }

private:
   void PrintKeysAndValues( Hashtable^ myList )
   {
      // Get the enumerator that can iterate through the hash tabble.
      IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator();
      Console::WriteLine( "\t-KEY-\t-VALUE-" );
      while ( myEnumerator->MoveNext() )
      {
         Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value );
      }
      Console::WriteLine();
   }

   // Create a DnsPermission instance that is the intersection of current
   // DnsPermission instance and the specified DnsPermission instance.
   void MyIntersection()
   {
      DnsPermission^ permission = dynamic_cast<DnsPermission^>(dnsPermission1->Intersect( dnsPermission2 ));
      // Print the attributes and the values of the intersection instance of
      // DnsPermission.
      PrintKeysAndValues( permission->ToXml()->Attributes );
   }
public void useDns() {
   // Create a DnsPermission instance.
   dnsPermission1 = new DnsPermission(PermissionState.Unrestricted);
   dnsPermission2 = new DnsPermission(PermissionState.None);
   // Check for permission.
   dnsPermission1.Demand();
   dnsPermission2.Demand();
   Console.WriteLine("Attributes and Values of first DnsPermission instance :");
   PrintKeysAndValues(dnsPermission1.ToXml().Attributes);
   Console.WriteLine("Attributes and Values of second DnsPermission instance :");
   PrintKeysAndValues(dnsPermission2.ToXml().Attributes);
   Console.WriteLine("Union of both instances : ");
   MyUnion();
   Console.WriteLine("Intersection of both instances : ");
   MyIntersection();
}

private void PrintKeysAndValues(Hashtable myList) {
   // Get the enumerator that can iterate through the hash tabble.
   IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
   Console.WriteLine("\t-KEY-\t-VALUE-");
   while (myEnumerator.MoveNext())
      Console.WriteLine("\t{0}:\t{1}", myEnumerator.Key, myEnumerator.Value);
   Console.WriteLine();
}
   // Create a DnsPermission instance that is the intersection of current
   // DnsPermission instance and the specified DnsPermission instance.
private void MyIntersection()
{
   DnsPermission permission = (DnsPermission)dnsPermission1.Intersect(dnsPermission2);
   // Print the attributes and the values of the intersection instance of
   // DnsPermission.
   PrintKeysAndValues(permission.ToXml().Attributes);
}
Public Sub useDns()
    ' Create a DnsPermission instance.
    dnsPermission1 = New DnsPermission(PermissionState.Unrestricted)
    dnsPermission2 = New DnsPermission(PermissionState.None)
    ' Check for permission.
    dnsPermission1.Demand()
    dnsPermission2.Demand()
    Console.WriteLine("Attributes and Values of first DnsPermission instance :")
    PrintKeysAndValues(dnsPermission1.ToXml().Attributes)
    Console.WriteLine("Attributes and Values of second DnsPermission instance :")
    PrintKeysAndValues(dnsPermission2.ToXml().Attributes)
    Console.WriteLine("Union of both instances : ")
    MyUnion()
    Console.WriteLine("Intersection of both instances : ")
    MyIntersection()
End Sub

Private Sub PrintKeysAndValues(myList As Hashtable)
    ' Get the enumerator that can iterate through the hash table.
    Dim myEnumerator As IDictionaryEnumerator = myList.GetEnumerator()
    Console.WriteLine(ControlChars.Tab + "-KEY-" + ControlChars.Tab + "-VALUE-")
    While myEnumerator.MoveNext()
        Console.WriteLine(ControlChars.Tab + "{0}:" + ControlChars.Tab + "{1}", myEnumerator.Key, myEnumerator.Value)
    End While
    Console.WriteLine()
End Sub

Private Sub MyIntersection()
    ' Create a DnsPermission instance that is the intersection of the current
    ' DnsPermission instance and the specified DnsPermission instance.
    Dim permission As DnsPermission = CType(dnsPermission1.Intersect(dnsPermission2), DnsPermission)
    ' Print the attributes and values of the intersection instance of DnsPermission.
    PrintKeysAndValues(permission.ToXml().Attributes)
End Sub

Hinweise

Die Intersect -Methode gibt eine DnsPermission Instanz zurück, die den von der aktuellen DnsPermission Instanz und der angegebenen DnsPermission Instanz definierten Zugriff zulässt. Jede Anforderung muss beide Berechtigungen übergeben, um ihre Schnittmenge zu übergeben.

Gilt für: