StrongNameIdentityPermission.Intersect(IPermission) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea e restituisce un'autorizzazione che rappresenta l'intersezione tra l'autorizzazione corrente e quella specificata.
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
Parametri
- target
- IPermission
Autorizzazione da intersecare con quella corrente. Deve essere dello stesso tipo dell'autorizzazione corrente.
Restituisce
Nuova autorizzazione che rappresenta l'intersezione tra l'autorizzazione corrente e quella specificata oppure null
se l'intersezione è vuota.
Eccezioni
Il parametro target
non è null
e non è dello stesso tipo dell'autorizzazione corrente.
Esempio
Nell'esempio di codice seguente vengono illustrati i risultati dell'uso del Intersect metodo, non come usare il metodo. Questo esempio fa parte di un esempio più grande fornito per la StrongNameIdentityPermission classe. L'uso migliore per questo esempio consiste nel compilare ed eseguire l'intero esempio e visualizzarne l'output.
Nota
L'esempio di codice è destinato a mostrare il comportamento del metodo, non per illustrarne l'uso. In generale, i metodi delle classi di autorizzazione vengono usati dall'infrastruttura di sicurezza; non vengono in genere usati nelle applicazioni.
// 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
Commenti
L'intersezione di due autorizzazioni è un'autorizzazione che descrive il set di operazioni descritte in comune. Solo una richiesta che supera entrambe le autorizzazioni originali passerà l'intersezione.
L'intersezione di due autorizzazioni di identità di nome sicuro identiche è la stessa autorizzazione. L'intersezione di due espressioni diverse (non jolly) è un'autorizzazione vuota. L'intersezione di un'espressione con caratteri jolly e un nome sicuro corrispondente è il nome sicuro. L'intersezione di due espressioni con caratteri jolly corrispondenti è più lunga, più specifica delle due espressioni.