GacIdentityPermission Class
.NET Framework 2.0
Note: This class is new in the .NET Framework version 2.0.
Defines the identity permission for files originating in the global assembly cache. This class cannot be inherited.
Namespace: System.Security.Permissions
Assembly: mscorlib (in mscorlib.dll)
Assembly: mscorlib (in mscorlib.dll)
'Declaration <SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class GacIdentityPermission Inherits CodeAccessPermission 'Usage Dim instance As GacIdentityPermission
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public final class GacIdentityPermission extends CodeAccessPermission
SerializableAttribute ComVisibleAttribute(true) public final class GacIdentityPermission extends CodeAccessPermission
The following code example demonstrates the use of the GacIdentityPermission class.
Imports System Imports System.Security Imports System.Security.Permissions Imports Microsoft.VisualBasic Public Class GacIdentityPermissionDemo ' IsSubsetOf determines whether the current permission is a subset of the specified permission. Private Function IsSubsetOfDemo() As Boolean Try Dim Gac1 As New GacIdentityPermission Dim Gac2 As New GacIdentityPermission(PermissionState.None) If (Gac1.Equals(Gac2)) Then Console.WriteLine("GacIdentityPermission() equals GacIdentityPermission(PermissionState.None).") End If If Gac1.IsSubsetOf(Gac2) Then Console.WriteLine((Gac1.ToString() & " is a subset of " & Gac2.ToString())) Else Console.WriteLine((Gac1.ToString() & " is not a subset of " & Gac2.ToString())) End If Catch e As Exception Console.WriteLine(("An exception was thrown : " & e.ToString().ToString())) Return False End Try Return True End Function 'IsSubsetOfDemo ' Union creates a new permission that is the union of the current permission ' and the specified permission. Private Function UnionDemo() As Boolean Dim Gac1 As New GacIdentityPermission(PermissionState.None) Dim Gac2 As New GacIdentityPermission Try Dim p3 As GacIdentityPermission = CType(Gac1.Union(Gac2), GacIdentityPermission) If Not (p3 Is Nothing) Then Console.WriteLine("The union of two GacIdentityPermissions was successful.") Else Console.WriteLine("The union of two GacIdentityPermissions failed.") Return False End If Catch e As Exception Console.WriteLine(("An exception was thrown : " & e.ToString())) Return False End Try Return True End Function 'UnionDemo ' Intersect creates and returns a new permission that is the intersection of the ' current permission and the specified permission. Private Function IntersectDemo() As Boolean Dim Gac1 As New GacIdentityPermission Dim Gac2 As New GacIdentityPermission Try Dim p3 As GacIdentityPermission = CType(Gac1.Intersect(Gac2), GacIdentityPermission) If Not (p3 Is Nothing) Then Console.WriteLine(("The intersection of the two permissions = " & p3.ToString() & ControlChars.Lf)) Else Console.WriteLine("The intersection of the two permissions is null." & ControlChars.Lf) End If Catch e As Exception Console.WriteLine(("An exception was thrown : " & e.ToString())) Return False End Try Return True End Function 'IntersectDemo 'Copy creates and returns an identical copy of the current permission. Private Function CopyDemo() As Boolean Dim Gac1 As New GacIdentityPermission Dim Gac2 As New GacIdentityPermission Console.WriteLine("**************************************************************************") Try Gac2 = CType(Gac1.Copy(), GacIdentityPermission) If Not (Gac2 Is Nothing) Then Console.WriteLine(("Result of copy = " & Gac2.ToString() & ControlChars.Lf)) End If Catch e As Exception Console.WriteLine(("Copy failed : " & Gac1.ToString() & e.ToString())) Return False End Try Return True End Function 'CopyDemo ' ToXml creates an XML encoding of the permission and its current state; FromXml reconstructs a ' permission with the specified state from the XML encoding. Private Function ToFromXmlDemo() As Boolean Dim Gac1 As New GacIdentityPermission Dim Gac2 As New GacIdentityPermission Console.WriteLine("**************************************************************************") Try Gac2 = New GacIdentityPermission(PermissionState.None) Gac2.FromXml(Gac1.ToXml()) Dim result As Boolean = Gac2.Equals(Gac1) If Gac2.IsSubsetOf(Gac1) AndAlso Gac1.IsSubsetOf(Gac2) Then Console.WriteLine(("Result of ToFromXml = " & Gac2.ToString())) Else Console.WriteLine(Gac2.ToString()) Console.WriteLine(Gac1.ToString()) Return False End If Catch e As Exception Console.WriteLine(("ToFromXml failed. " & e.ToString())) Return False End Try Return True End Function 'ToFromXmlDemo ' Invoke all demos. Public Function RunDemo() As Boolean Dim returnCode As Boolean = True Dim tempReturnCode As Boolean ' Call the IsSubsetOf demo. tempReturnCode = IsSubsetOfDemo() If tempReturnCode Then Console.Out.WriteLine("IsSubsetOf demo completed successfully.") Else Console.Out.WriteLine("Subset demo failed.") End If returnCode = tempReturnCode AndAlso returnCode ' Call the Union demo. tempReturnCode = UnionDemo() If tempReturnCode Then Console.Out.WriteLine("Union demo completed successfully.") Else Console.Out.WriteLine("Union demo failed.") End If returnCode = tempReturnCode AndAlso returnCode ' Call the Intersect demo. tempReturnCode = IntersectDemo() If tempReturnCode Then Console.Out.WriteLine("Intersect demo completed successfully.") Else Console.Out.WriteLine("Intersect demo failed.") End If returnCode = tempReturnCode AndAlso returnCode ' Call the Copy demo. tempReturnCode = CopyDemo() If tempReturnCode Then Console.Out.WriteLine("Copy demo completed successfully.") Else Console.Out.WriteLine("Copy demo failed.") End If returnCode = tempReturnCode AndAlso returnCode ' Call the ToFromXML demo. tempReturnCode = ToFromXmlDemo() If tempReturnCode Then Console.Out.WriteLine("ToFromXML demo completed successfully.") Else Console.Out.WriteLine("ToFromXml demo failed.") End If returnCode = tempReturnCode AndAlso returnCode Return returnCode End Function 'RunDemo ' Test harness. Public Overloads Shared Sub Main(ByVal args() As [String]) Try Dim testcase As New GACIdentityPermissionDemo Dim returnCode As Boolean = testcase.RunDemo() If returnCode Then Console.Out.WriteLine("The GacIdentityPermission demo completed successfully.") Console.Out.WriteLine("Press the Enter key to exit.") Dim consoleInput As String = Console.ReadLine() System.Environment.ExitCode = 100 Else Console.Out.WriteLine("The GacIdentityPermission demo failed.") Console.Out.WriteLine("Press the Enter key to exit.") Dim consoleInput As String = Console.ReadLine() System.Environment.ExitCode = 101 End If Catch e As Exception Console.Out.WriteLine("The GacIdentityPermission demo failed.") Console.WriteLine(e.ToString()) Console.Out.WriteLine("Press the Enter key to exit.") Dim consoleInput As String = Console.ReadLine() System.Environment.ExitCode = 101 End Try End Sub 'Main End Class 'GacIdentityPermissionDemo
import System.* ;
import System.Security.* ;
import System.Security.Permissions.*;
public class GacIdentityPermissionDemo
{
// IsSubsetOf determines whether the current permission is a subset
// of the specified permission.
private boolean IsSubsetOfDemo()
{
try {
GacIdentityPermission gac1 = new GacIdentityPermission();
GacIdentityPermission gac2 = new GacIdentityPermission(
PermissionState.None);
if (gac1.Equals(gac2)) {
Console.WriteLine("GacIdentityPermission() "
+ "equals GacIdentityPermission(PermissionState.None).");
}
if (gac1.IsSubsetOf(gac2)) {
Console.WriteLine((gac1 + " is a subset of " + gac2));
}
else {
Console.WriteLine((gac1 + " is not a subset of " + gac2));
}
}
catch (System.Exception e) {
Console.WriteLine(("An exception was thrown : " + e));
return false;
}
return true;
} //IsSubsetOfDemo
// Union creates a new permission that is the union of the current
// permission and the specified permission.
private boolean UnionDemo()
{
GacIdentityPermission gac1 = new GacIdentityPermission(
PermissionState.None);
GacIdentityPermission gac2 = new GacIdentityPermission();
try {
GacIdentityPermission p3 =
((GacIdentityPermission)(gac1.Union(gac2)));
if (p3 != null) {
Console.WriteLine("The union of two GacIdentityPermissions "
+ "was successful.");
}
else {
Console.WriteLine("The union of two "
+ "GacIdentityPermissions failed.");
return false;
}
}
catch (System.Exception e) {
Console.WriteLine(("An exception was thrown : " + e));
return false;
}
return true;
} //UnionDemo
// Intersect creates and returns a new permission that is the
// intersection of the current permission and the specified permission.
private boolean IntersectDemo()
{
GacIdentityPermission gac1 = new GacIdentityPermission();
GacIdentityPermission gac2 = new GacIdentityPermission();
try {
GacIdentityPermission p3 =
((GacIdentityPermission)(gac1.Intersect(gac2)));
if (p3 != null) {
Console.WriteLine(("The intersection of the two permissions = "
+ p3.ToString() + "\n"));
}
else {
Console.WriteLine("The intersection of the two permissions "
+ "is null.\n");
}
}
catch (System.Exception e) {
Console.WriteLine(("An exception was thrown : " + e));
return false;
}
return true;
} //IntersectDemo
// Copy creates and returns an identical copy of the current permission.
private boolean CopyDemo()
{
GacIdentityPermission gac1 = new GacIdentityPermission();
GacIdentityPermission gac2 = new GacIdentityPermission();
Console.WriteLine("****************************************"
+ "**********************************");
try {
gac2 = ((GacIdentityPermission)(gac1.Copy()));
if (gac2 != null) {
Console.WriteLine(("Result of copy = "
+ gac2.ToString() + "\n"));
}
}
catch (System.Exception e) {
Console.WriteLine(("Copy failed : " + gac1.ToString() + e));
return false;
}
return true;
} //CopyDemo
// ToXml creates an XML encoding of the permission and its current state;
// FromXml reconstructs a permission with the specified state from the
// XML encoding.
private boolean ToFromXmlDemo()
{
GacIdentityPermission gac1 = new GacIdentityPermission();
GacIdentityPermission gac2 = new GacIdentityPermission();
Console.WriteLine("***************************************"
+ "***********************************");
try {
gac2 = new GacIdentityPermission(PermissionState.None);
gac2.FromXml(gac1.ToXml());
boolean result = gac2.Equals(gac1);
if (gac2.IsSubsetOf(gac1) && gac1.IsSubsetOf(gac2)) {
Console.WriteLine(("Result of ToFromXml = " + gac2.ToString()));
}
else {
Console.WriteLine(gac2.ToString());
Console.WriteLine(gac1.ToString());
return false;
}
}
catch (System.Exception e) {
Console.WriteLine(("ToFromXml failed. " + e));
return false;
}
return true;
} //ToFromXmlDemo
// Invoke all demos.
public boolean RunDemo()
{
boolean returnCode = true;
boolean tempReturnCode;
// Call the IsSubsetOf demo.
if (tempReturnCode = IsSubsetOfDemo()) {
Console.get_Out().WriteLine("IsSubsetOf demo "
+ "completed successfully.");
}
else {
Console.get_Out().WriteLine("Subset demo failed.");
}
returnCode = tempReturnCode && returnCode;
// Call the Union demo.
if (tempReturnCode = UnionDemo()) {
Console.get_Out().WriteLine("Union demo completed successfully.");
}
else {
Console.get_Out().WriteLine("Union demo failed.");
}
returnCode = tempReturnCode && returnCode;
// Call the Intersect demo.
if (tempReturnCode = IntersectDemo()) {
Console.get_Out().WriteLine("Intersect demo "
+ "completed successfully.");
}
else {
Console.get_Out().WriteLine("Intersect demo failed.");
}
returnCode = tempReturnCode && returnCode;
// Call the Copy demo.
if (tempReturnCode = CopyDemo()) {
Console.get_Out().WriteLine("Copy demo completed successfully.");
}
else {
Console.get_Out().WriteLine("Copy demo failed.");
}
returnCode = tempReturnCode && returnCode;
// Call the ToFromXML demo.
if (tempReturnCode = ToFromXmlDemo()) {
Console.get_Out().WriteLine("ToFromXML demo "
+ "completed successfully.");
}
else {
Console.get_Out().WriteLine("ToFromXml demo failed.");
}
returnCode = tempReturnCode && returnCode;
return returnCode;
} //RunDemo
// Test harness.
public static void main(String[] args)
{
try {
GacIdentityPermissionDemo testcase =
new GacIdentityPermissionDemo();
boolean returnCode = testcase.RunDemo();
if (returnCode) {
Console.get_Out().WriteLine("The GacIdentityPermission demo "
+ "completed successfully.");
Console.get_Out().WriteLine("Press the Enter key to exit.");
String consoleInput = Console.ReadLine();
System.Environment.set_ExitCode(100);
}
else {
Console.get_Out().WriteLine("The GacIdentityPermission "
+ "demo failed.");
Console.get_Out().WriteLine("Press the Enter key to exit.");
String consoleInput = Console.ReadLine();
System.Environment.set_ExitCode(101);
}
}
catch (System.Exception e) {
Console.get_Out().WriteLine("The GacIdentityPermission "
+ "demo failed.");
Console.WriteLine(e.ToString());
Console.get_Out().WriteLine("Press the Enter key to exit.");
String consoleInput = Console.ReadLine();
System.Environment.set_ExitCode(101);
}
} //main
} //GacIdentityPermissionDemo
System.Object
System.Security.CodeAccessPermission
System.Security.Permissions.GacIdentityPermission
System.Security.CodeAccessPermission
System.Security.Permissions.GacIdentityPermission
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Community Additions
ADD
Show: