Imports System
Imports System.Security
Imports System.Security.Permissions
Public Class SiteIdentityPermissionDemo
Public Shared Sub Main(ByVal args() As String)
IsSubsetOfDemo()
CopyDemo()
UnionDemo()
IntersectDemo()
ToFromXmlDemo()
End Sub 'Main
' IsSubsetOf determines whether the current permission is a subset of the specified permission.
Private Shared Sub IsSubsetOfDemo()
Dim siteIdPerm1 As New SiteIdentityPermission("*.fourthcoffee.com")
Dim siteIdPerm2 As New SiteIdentityPermission("www.fourthcoffee.com")
If siteIdPerm1.IsSubsetOf(siteIdPerm2) Then
Console.WriteLine(siteIdPerm1.Site + " is a subset of " + siteIdPerm2.Site)
Else
Console.WriteLine(siteIdPerm1.Site + " is not a subset of " + siteIdPerm2.Site)
End If
If siteIdPerm2.IsSubsetOf(siteIdPerm1) Then
Console.WriteLine(siteIdPerm2.Site + " is a subset of " + siteIdPerm1.Site)
Else
Console.WriteLine(siteIdPerm2.Site + " is not a subset of " + siteIdPerm1.Site)
End If
End Sub 'IsSubsetOfDemo
' Union creates a new permission that is the union of the current permission
' and the specified permission.
Private Shared Sub UnionDemo()
Dim siteIdPerm1 As New SiteIdentityPermission("*.fourthcoffee.com")
Dim siteIdPerm2 As New SiteIdentityPermission("www.fourthcoffee.com")
Dim p3 As SiteIdentityPermission = CType(siteIdPerm1.Union(siteIdPerm2), SiteIdentityPermission)
Try
If Not (p3 Is Nothing) Then
Console.WriteLine("The union of " + siteIdPerm1.Site + " and " + vbLf + vbTab + siteIdPerm2.Site + " is " + vbLf + vbTab + p3.Site + vbLf)
Else
Console.WriteLine("The union of " + siteIdPerm1.Site + " and " + vbLf + vbTab + siteIdPerm2.Site + " is null." + vbLf)
End If
Catch e As SystemException
Console.WriteLine("The union of " + siteIdPerm1.Site + " and " + vbLf + vbTab + siteIdPerm2.Site + " failed.")
Console.WriteLine(e.Message)
End Try
End Sub 'UnionDemo
' Intersect creates and returns a new permission that is the intersection of the
' current permission and the permission specified.
Private Shared Sub IntersectDemo()
Dim siteIdPerm1 As New SiteIdentityPermission("*.fourthcoffee.com")
Dim siteIdPerm2 As New SiteIdentityPermission("www.fourthcoffee.com")
Dim p3 As SiteIdentityPermission = CType(siteIdPerm1.Intersect(siteIdPerm2), SiteIdentityPermission)
If Not (p3 Is Nothing) Then
Console.WriteLine("The intersection of " + siteIdPerm1.Site + " and " + vbLf + vbTab + siteIdPerm2.Site + " is " + p3.Site + vbLf)
Else
Console.WriteLine("The intersection of " + siteIdPerm1.Site + " and " + vbLf + vbTab + siteIdPerm2.Site + " is null." + vbLf)
End If
End Sub 'IntersectDemo
'Copy creates and returns an identical copy of the current permission.
Private Shared Sub CopyDemo()
Dim siteIdPerm1 As New SiteIdentityPermission("*.fourthcoffee.com")
Dim siteIdPerm2 As New SiteIdentityPermission(PermissionState.None)
siteIdPerm2 = CType(siteIdPerm1.Copy(), SiteIdentityPermission)
If Not (siteIdPerm2 Is Nothing) Then
Console.WriteLine("The copy succeeded: " + siteIdPerm2.ToString() + " " + vbLf)
End If
End Sub '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 Shared Sub ToFromXmlDemo()
Dim siteIdPerm1 As New SiteIdentityPermission("*.fourthcoffee.com")
Dim siteIdPerm2 As New SiteIdentityPermission(PermissionState.None)
siteIdPerm2.FromXml(siteIdPerm1.ToXml())
Dim result As Boolean = siteIdPerm2.Equals(siteIdPerm1)
If result Then
Console.WriteLine("Result of ToFromXml = " + siteIdPerm2.ToString())
Else
Console.WriteLine(siteIdPerm2.ToString())
Console.WriteLine(siteIdPerm1.ToString())
End If
End Sub 'ToFromXmlDemo
End Class 'SiteIdentityPermissionDemo