Sdílet prostřednictvím


StrongNameIdentityPermission.Intersect(IPermission) Metoda

Definice

Vytvoří a vrátí oprávnění, které je průsečíkem aktuálního a zadaného oprávnění.

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

Parametry

target
IPermission

Oprávnění, které se protíná s aktuálním oprávněním. Musí být stejného typu jako aktuální oprávnění.

Návraty

Nové oprávnění, které představuje průsečík aktuálního oprávnění a zadaného oprávnění, nebo null pokud je průnik prázdný.

Výjimky

Parametr target není null a není stejného typu jako aktuální oprávnění.

Příklady

Následující příklad kódu ukazuje výsledky použití Intersect metody, nikoli způsob použití metody. Tento příklad je součástí většího příkladu poskytnutého StrongNameIdentityPermission pro třídu . V tomto příkladu je nejlepší sestavit a spustit celý příklad a zobrazit jeho výstup.

Poznámka

Příklad kódu je určen k zobrazení chování metody, nikoli k demonstraci jejího použití. Obecně platí, že metody tříd oprávnění jsou používány infrastrukturou zabezpečení; v aplikacích se obvykle nepoužívají.

// 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

Poznámky

Průsečík dvou oprávnění je oprávnění, které popisuje sadu operací, které obě popisují společně. Průnikem projde jenom požadavek, který projde oběma původními oprávněními.

Průsečík dvou identických oprávnění identity silného názvu je stejné oprávnění. Průsečík dvou různých výrazů (nikoli zástupných znaků) je prázdné oprávnění. Průnik výrazu se zástupným znakem a odpovídajícího silného názvu je silný název. Průsečík dvou výrazů zástupných znaků, které se shodují, je delší a konkrétnější z těchto dvou výrazů.

Platí pro