StrongNameIdentityPermission.Intersect(IPermission) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück.
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
Eine Berechtigung für die Überschneidung mit der aktuellen Berechtigung. Sie muss denselben Typ aufweisen wie die aktuelle Berechtigung.
Gibt zurück
Eine neue Berechtigung, die die Schnittmenge der aktuellen und der angegebenen Berechtigung darstellt, oder null
, wenn die Schnittmenge leer ist.
Ausnahmen
Der target
-Parameter ist nicht null
und weist nicht denselben Typ wie die aktuelle Berechtigung auf.
Beispiele
Das folgende Codebeispiel zeigt die Ergebnisse der Verwendung der Intersect -Methode, nicht die Verwendung der -Methode. Dieses Beispiel ist Teil eines größeren Beispiels, das für die StrongNameIdentityPermission -Klasse bereitgestellt wird. Die beste Verwendung für dieses Beispiel besteht darin, das gesamte Beispiel zu erstellen und auszuführen und dessen Ausgabe anzuzeigen.
Hinweis
Das Codebeispiel dient dazu, das Verhalten der -Methode zu veranschaulichen und nicht deren Verwendung zu veranschaulichen. Im Allgemeinen werden die Methoden von Berechtigungsklassen von der Sicherheitsinfrastruktur verwendet. sie werden in der Regel nicht in Anwendungen verwendet.
// Intersect creates and returns a new permission that is the intersection of the current
// permission and the permission specified.
bool IntersectDemo()
{
bool returnValue = true;
StrongNameIdentityPermission^ snIdPerm1;
StrongNameIdentityPermission^ snIdPerm2;
StrongNameIdentityPermission^ snIdPerm3;
snIdPerm1 = gcnew StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", gcnew Version("1.0.0.0"));
snIdPerm2 = gcnew StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", gcnew Version("1.0.0.0"));
try
{
snIdPerm3 = dynamic_cast<StrongNameIdentityPermission^>(snIdPerm1->Intersect(snIdPerm2));
Console::WriteLine("The intersection of MyCompany.MyDepartment.*" +
"and MyCompany.MyDepartment.MyFile is " +
(dynamic_cast<StrongNameIdentityPermission^>(snIdPerm3))->Name);
}
catch (Exception^ e)
{
Console::WriteLine("An exception was thrown: " + e);
returnValue = false;
}
return returnValue;
}
// Intersect creates and returns a new permission that is the intersection of the current
// permission and the permission specified.
private bool IntersectDemo()
{
bool returnValue = true;
StrongNameIdentityPermission snIdPerm1, snIdPerm2, snIdPerm3;
snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0"));
snIdPerm2 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", new Version("1.0.0.0"));
try
{
snIdPerm3 = (StrongNameIdentityPermission)snIdPerm1.Intersect(snIdPerm2);
Console.WriteLine("The intersection of MyCompany.MyDepartment.*"
+ "MyCompany.MyDepartment.MyFile is "
+ ((StrongNameIdentityPermission)snIdPerm3).Name.ToString());
}
catch (Exception e)
{
Console.WriteLine("An exception was thrown: " + e);
returnValue = false;
}
return returnValue;
}
' Intersect creates and returns a new permission that is the intersection of the current
' permission and the permission specified.
Private Function IntersectDemo() As Boolean
Dim returnValue As Boolean = True
Dim snIdPerm1, snIdPerm2, snIdPerm3 As StrongNameIdentityPermission
snIdPerm1 = New StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", New Version("1.0.0.0"))
snIdPerm2 = New StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.MyFile", New Version("1.0.0.0"))
Try
snIdPerm3 = CType(snIdPerm1.Intersect(snIdPerm2), StrongNameIdentityPermission)
Console.WriteLine("The intersection of MyCompany.MyDepartment.*" + "MyCompany.MyDepartment.MyFile is " + CType(snIdPerm3, StrongNameIdentityPermission).Name.ToString())
Catch e As Exception
Console.WriteLine("An exception was thrown: " + e.ToString())
returnValue = False
End Try
Return returnValue
End Function 'IntersectDemo
Hinweise
Die Schnittmenge von zwei Berechtigungen ist eine Berechtigung, die den Satz von Vorgängen beschreibt, die beide gemeinsam beschreiben. Nur eine Anforderung, die beide ursprünglichen Berechtigungen übergibt, übergibt die Schnittmenge.
Die Schnittmenge zweier identischer Identitätsberechtigungen mit starkem Namen ist dieselbe Berechtigung. Die Schnittmenge von zwei unterschiedlichen Ausdrücken (nicht Platzhalter) ist eine leere Berechtigung. Die Schnittmenge eines Wildcardausdrucks und eines entsprechenden starken Namens ist der starke Name. Die Schnittmenge zweier übereinstimmender Wildcardausdrücke ist die längere, spezifischere der beiden Ausdrücke.