StrongNameIdentityPermission.Union(IPermission) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří oprávnění, které je sjednocením aktuálního a zadaného oprávnění.
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
Oprávnění, které se má kombinovat 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 sjednocení aktuálního a zadaného oprávnění.
Výjimky
Parametr target
není null
a není stejného typu jako aktuální oprávnění.
-nebo-
Dvě oprávnění se nerovnají a jedno je podmnožinou druhého.
Příklady
Následující příklad kódu ukazuje výsledky použití Union metody, nikoli způsob použití metody. Tento příklad je součástí většího příkladu StrongNameIdentityPermission pro třídu. V tomto příkladu je nejvhodnější 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 předvedení jejího použití. Obecně platí, že metody tříd oprávnění jsou používány infrastrukturou zabezpečení; obvykle se nepoužívají v aplikacích.
// 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
Poznámky
Výsledkem volání Union je oprávnění, které představuje všechny operace reprezentované aktuálním oprávněním i zadaným oprávněním. Jakýkoli požadavek, který projde kterýmkoli oprávněním, projde jejich sjednocením.
Sjednocení oprávnění a null
je oprávnění, které není null
. Sjednocením oprávnění a podmnožinou tohoto oprávnění je oprávnění, které obsahuje druhé oprávnění. Jakákoli jiná kombinace způsobí vyvolání ArgumentException výjimky.