Aracılığıyla paylaş


StrongNameIdentityPermission.Intersect(IPermission) Yöntem

Tanım

Geçerli iznin ve belirtilen iznin kesişimi olan bir izin oluşturur ve döndürür.

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

Parametreler

target
IPermission

Geçerli izinle kesişmek için bir izin. Geçerli izinle aynı türde olmalıdır.

Döndürülenler

Geçerli iznin ve belirtilen iznin kesişimini temsil eden veya null kesişim boşsa yeni bir izin.

Özel durumlar

target parametresi geçerli null izinle aynı türde değil ve değil.

Örnekler

Aşağıdaki kod örneği, yönteminin nasıl kullanılacağını değil, yönteminin Intersect kullanılmasının sonuçlarını gösterir. Bu örnek, sınıfı için StrongNameIdentityPermission sağlanan daha büyük bir örneğin parçasıdır. Bu örnek için en iyi kullanım, tüm örneği oluşturup yürütmek ve çıktısını görüntülemektir.

Not

Kod örneği, yönteminin kullanımını göstermek için değil davranışını göstermek için tasarlanmıştır. Genel olarak, izin sınıflarının yöntemleri güvenlik altyapısı tarafından kullanılır; bunlar genellikle uygulamalarda kullanılmaz.

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

Açıklamalar

İki iznin kesişimi, her ikisinin de ortak olarak açıkladıkları işlem kümesini açıklayan bir izindir. Yalnızca her iki özgün izni de geçen bir talep kesişimi geçer.

İki özdeş tanımlayıcı ad kimliği izninin kesişimi aynı izindir. İki farklı (joker karakter değil) ifadenin kesişimi boş bir izindir. Joker karakter ifadesinin ve eşleşen tanımlayıcı adın kesişimi tanımlayıcı addır. Eşleşen iki joker karakter ifadesinin kesişimi, iki ifadenin daha uzun ve daha belirgin olmasıdır.

Şunlara uygulanır