Udostępnij przez


StrongNameIdentityPermission.Union(IPermission) Metoda

Definicja

Tworzy uprawnienie będące połączeniem bieżącego uprawnienia i określonego uprawnienia.

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

Parametry

target
IPermission

Uprawnienie do łączenia z bieżącym uprawnieniem. Musi być tego samego typu co bieżące uprawnienie.

Zwraca

Nowe uprawnienie reprezentujące związek bieżącego uprawnienia i określone uprawnienie.

Wyjątki

Parametr target nie null jest i nie jest tego samego typu co bieżące uprawnienie.

-lub-

Te dwa uprawnienia nie są równe, a jeden jest podzbiorem drugiego.

Przykłady

Poniższy przykład kodu przedstawia wyniki użycia Union metody, a nie sposób użycia metody . Ten przykład jest częścią większego przykładu udostępnionego StrongNameIdentityPermission dla klasy . Najlepszym zastosowaniem w tym przykładzie jest skompilowanie i wykonanie całego przykładu oraz wyświetlenie jego danych wyjściowych.

Uwaga

Przykładowy kod jest przeznaczony do pokazania zachowania metody, a nie do zademonstrowania jej użycia. Ogólnie rzecz biorąc, metody klas uprawnień są używane przez infrastrukturę zabezpieczeń; nie są one zwykle używane w aplikacjach.

// Union creates a new permission that is the union of the current permission and the specified permission.
bool UnionDemo()
{
    bool returnValue = true;
    StrongNameIdentityPermission^ snIdPerm1;
    StrongNameIdentityPermission^ snIdPerm2;
    IPermission^ 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"));
    snIdPerm3 = dynamic_cast<StrongNameIdentityPermission^>(snIdPerm1->Union( snIdPerm2 ));
    snIdPerm3 = snIdPerm1->Union( snIdPerm2 );

    try
    {
        Console::WriteLine("The union of MyCompany.MyDepartment.*" +
            "and MyCompany.MyDepartment.MyFile is " +
            (dynamic_cast<StrongNameIdentityPermission^>(snIdPerm3))->Name); 
    }
    catch (Exception^ e)
    {
        Console::WriteLine("An expected exception was thrown: " + e->Message);
    }


    return returnValue;
}
// Union creates a new permission that is the union of the current permission and the specified permission.
private bool UnionDemo()
{

    bool returnValue = true;

    StrongNameIdentityPermission snIdPerm1, snIdPerm2;
    IPermission 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"));

    snIdPerm3 = (StrongNameIdentityPermission)snIdPerm1.Union(snIdPerm2);

    try
    {
        Console.WriteLine("The union of MyCompany.MyDepartment.*" +
        "and MyCompany.MyDepartment.MyFile is " +
        ((StrongNameIdentityPermission)snIdPerm3).Name.ToString());
    }
    catch (Exception e)
    {
        Console.WriteLine("An expected exception was thrown: " + e.Message);
    }

    return returnValue;
}
' Union creates a new permission that is the union of the current permission and the specified permission.
Private Function UnionDemo() As Boolean 
    
    Dim returnValue As Boolean = True
    
    Dim snIdPerm1, snIdPerm2 As StrongNameIdentityPermission
    Dim snIdPerm3 As IPermission
    
    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"))
    
    snIdPerm3 = CType(snIdPerm1.Union(snIdPerm2), StrongNameIdentityPermission)
    
    Try
        Console.WriteLine("The union of MyCompany.MyDepartment.*" + "and MyCompany.MyDepartment.MyFile is " + CType(snIdPerm3, StrongNameIdentityPermission).Name.ToString())
    Catch e As Exception
        Console.WriteLine("An expected exception was thrown: " + e.Message)
    End Try
    
    
    Return returnValue

End Function 'UnionDemo

Uwagi

Wynikiem wywołania metody Union jest uprawnienie, które reprezentuje wszystkie operacje reprezentowane zarówno przez bieżące uprawnienie, jak i określone uprawnienie. Każde żądanie, które przekazuje dowolne uprawnienie przechodzi ich związek.

Związek uprawnienia i null jest uprawnieniem, które nie nulljest . Związek uprawnienia i podzbiór tego uprawnienia to uprawnienie, które zawiera inne. Każda inna kombinacja powoduje zgłoszenie wyjątku ArgumentException .

Dotyczy