DnsPermission.Union(IPermission) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée une instance d’autorisation qui est l’union entre l’instance d’autorisation actuelle et l’instance d’autorisation spécifiée.
public:
override System::Security::IPermission ^ Union(System::Security::IPermission ^ target);
public override System.Security.IPermission Union (System.Security.IPermission target);
override this.Union : System.Security.IPermission -> System.Security.IPermission
Public Overrides Function Union (target As IPermission) As IPermission
Paramètres
- target
- IPermission
Instance de DnsPermission à combiner avec l’instance actuelle.
Retours
Instance de DnsPermission qui représente l’union entre l’instance de DnsPermission actuelle et l’instance de DnsPermission spécifiée. Si target
est null
, cette méthode retourne une copie de l’instance actuelle. Si l’instance actuelle ou le paramètre target
est non limité, cette méthode retourne une instance de DnsPermission non limitée ; sinon, elle retourne une instance de DnsPermission qui est limitée.
Exceptions
target
n’est ni DnsPermission, ni null
.
Exemples
L’exemple suivant crée une instance d’autorisation qui est l’union de l’instance d’autorisation actuelle et de l’instance d’autorisation spécifiée.
private:
void MyUnion()
{
// Create a DnsPermission instance that is the union of the current DnsPermission
// instance and the specified DnsPermission instance.
DnsPermission^ permission = dynamic_cast<DnsPermission^>(dnsPermission1->Union( dnsPermission2 ));
// Print the attributes and the values of the union instance of DnsPermission.
PrintKeysAndValues( permission->ToXml()->Attributes );
}
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();
}
private void MyUnion()
{
// Create a DnsPermission instance that is the union of the current DnsPermission
// instance and the specified DnsPermission instance.
DnsPermission permission = (DnsPermission)dnsPermission1.Union(dnsPermission2);
// Print the attributes and the values of the union 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();
}
Private Sub MyUnion()
' Create a DnsPermission instance which is the union of the current DnsPermission instance and the specified DnsPermission instance.
Dim permission As DnsPermission = CType(dnsPermission1.Union(dnsPermission2), DnsPermission)
' Print the attributes and values of the union instance of DnsPermission.
PrintKeysAndValues(permission.ToXml().Attributes)
End Sub
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
Remarques
La Union méthode retourne une DnsPermission instance qui autorise l’accès défini par l’instance actuelle DnsPermission ou l’instance spécifiée DnsPermission . Toute demande qui passe l’une ou l’autre autorisation passe leur union.