FileIOPermission.IsSubsetOf-Methode
Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.
Namespace: System.Security.Permissions
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overrides Function IsSubsetOf ( _
target As IPermission _
) As Boolean
'Usage
Dim instance As FileIOPermission
Dim target As IPermission
Dim returnValue As Boolean
returnValue = instance.IsSubsetOf(target)
public override bool IsSubsetOf (
IPermission target
)
public:
virtual bool IsSubsetOf (
IPermission^ target
) override
public boolean IsSubsetOf (
IPermission target
)
public override function IsSubsetOf (
target : IPermission
) : boolean
Parameter
- target
Eine Berechtigung, für die geprüft werden soll, ob sie eine Teilmenge einer anderen Berechtigung ist. Diese Berechtigung muss von demselben Typ wie die aktuelle Berechtigung sein.
Rückgabewert
true, wenn die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist, andernfalls false.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der target-Parameter ist nicht NULL (Nothing in Visual Basic) und nicht von demselben Typ wie die aktuelle Berechtigung. |
Hinweise
Die aktuelle Berechtigung ist eine Teilmenge der angegebenen Berechtigung, wenn die aktuelle Berechtigung eine Gruppe von Operationen angibt, die in der angegebenen Berechtigung enthalten ist. Beispielsweise ist eine Berechtigung, die den Lesezugriff auf C:\Beispiel.txt darstellt, eine Teilmenge einer Berechtigung, die den Lesezugriff auf C:\ darstellt. Wenn diese Methode true zurückgibt, stellt die aktuelle Berechtigung keine weitergehenden Zugriffsrechte für die geschützte Ressource dar als die angegebene Berechtigung.
Beispiel
Private Function IsSubsetOfDemo() As Boolean
Dim returnValue As Boolean = True
Dim fileIO1 As String = ""
Dim fileIO2 As String = ""
Dim fileIOPerm1, fileIOPerm2 As FileIOPermission
Dim fileIOGen1 As New FileIOGenerator()
Dim fileIOGen2 As New FileIOGenerator()
fileIOGen1.ResetIndex()
While fileIOGen1.CreateFilePath(fileIO1)
If fileIO1 = "" Then
fileIOPerm1 = New FileIOPermission(PermissionState.None)
Else
fileIOPerm1 = New FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO1)
End If
Console.WriteLine("**********************************************************" & ControlChars.Lf)
fileIOGen2.ResetIndex()
While fileIOGen2.CreateFilePath(fileIO2)
If fileIO2 = "" Then
fileIOPerm2 = New FileIOPermission(PermissionState.None)
Else
fileIOPerm2 = New FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO2)
End If
Dim firstPermission As String = IIf(fileIO1 = "" Or fileIO1 Is Nothing, "null", fileIO1)
Dim secondPermission As String = IIf(fileIO2 = "" Or fileIO2 Is Nothing, "null", fileIO2)
If fileIOPerm2 Is Nothing Then
GoTo ContinueWhile2
End If
Try
If fileIOPerm1.IsSubsetOf(fileIOPerm2) Then
Console.WriteLine((firstPermission & " is a subset of " & secondPermission & ControlChars.Lf))
Else
Console.WriteLine((firstPermission & " is not a subset of " & secondPermission & ControlChars.Lf))
End If
Catch e As Exception
Console.WriteLine(IIf("An exception was thrown for subset :" & fileIO1 = "", "null", IIf(fileIO1 & ControlChars.Lf & fileIO2 = "", "null", fileIO2 & ControlChars.Lf & e.ToString())))
End Try
ContinueWhile2:
End While
ContinueWhile1:
End While
Return returnValue
End Function 'IsSubsetOfDemo
private bool IsSubsetOfDemo()
{
bool returnValue = true;
string fileIO1, fileIO2;
FileIOPermission fileIOPerm1, fileIOPerm2;
FileIOGenerator fileIOGen1 = new FileIOGenerator();
FileIOGenerator fileIOGen2 = new FileIOGenerator();
fileIOGen1.ResetIndex();
while (fileIOGen1.CreateFilePath(out fileIO1 ))
{
if(fileIO1 == "")
fileIOPerm1 = new FileIOPermission(PermissionState.None);
else
fileIOPerm1 = new FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO1);
Console.WriteLine("**********************************************************\n");
fileIOGen2.ResetIndex();
while (fileIOGen2.CreateFilePath(out fileIO2))
{
if (fileIO2 == "")
fileIOPerm2 = new FileIOPermission(PermissionState.None);
else
fileIOPerm2 = new FileIOPermission(FileIOPermissionAccess.AllAccess, fileIO2);
string firstPermission = fileIO1 == "" | fileIO1 == null ? "null" : fileIO1;
string secondPermission = fileIO2 == "" | fileIO2 == null ? "null" : fileIO2;
if (fileIOPerm2 == null) continue;
try
{
if (fileIOPerm1.IsSubsetOf(fileIOPerm2))
{
Console.WriteLine(firstPermission + " is a subset of " + secondPermission + "\n");
}
else
{
Console.WriteLine(firstPermission + " is not a subset of " + secondPermission + "\n");
}
}
catch (Exception e)
{
Console.WriteLine("An exception was thrown for subset :" + fileIO1 == "" ? "null" : fileIO1 + "\n" +
fileIO2 == "" ? "null" : fileIO2 + "\n" + e);
}
}
}
return returnValue;
}
bool IsSubsetOfDemo()
{
bool returnValue = true;
String^ fileIO1;
String^ fileIO2;
FileIOPermission^ fileIOPerm1;
FileIOPermission^ fileIOPerm2;
FileIOGenerator^ fileIOGen1 = gcnew FileIOGenerator;
FileIOGenerator^ fileIOGen2 = gcnew FileIOGenerator;
fileIOGen1->ResetIndex();
while ( fileIOGen1->CreateFilePath( &fileIO1 ) )
{
if (fileIO1 == "")
fileIOPerm1 = gcnew FileIOPermission(PermissionState::None);
else
fileIOPerm1 = gcnew FileIOPermission(FileIOPermissionAccess::AllAccess, fileIO1);
Console::WriteLine( "**********************************************************\n" );
fileIOGen2->ResetIndex();
while ( fileIOGen2->CreateFilePath( &fileIO2 ) )
{
if (fileIO2 == "")
fileIOPerm2 = gcnew FileIOPermission(PermissionState::None);
else
fileIOPerm2 = gcnew FileIOPermission(FileIOPermissionAccess::AllAccess, fileIO2);
String^ firstPermission = fileIO1 == "" || fileIO1 == nullptr ? "null" : fileIO1;
String^ secondPermission = fileIO2 == "" || fileIO2 == nullptr ? "null" : fileIO2;
if ( fileIOPerm2 == nullptr )
continue;
try
{
if ( fileIOPerm1->IsSubsetOf( fileIOPerm2 ) )
{
Console::WriteLine( "{0} is a subset of {1}\n", firstPermission, secondPermission );
}
else
{
Console::WriteLine( "{0} is not a subset of {1}\n", firstPermission, secondPermission );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "An exception was thrown for subset :{0}\n{1}\n{2}", (fileIO1->Equals( "" ) ? "null" : fileIO1), (fileIO2->Equals( "" ) ? "null" : fileIO2), e );
}
}
}
return returnValue;
}
// IsSubsetOf determines whether the current permission is a
// subset of the specified permission.
// This method compares various FileIOPermission paths with
// FileIOPermissionAccess set to AllAccess.
private boolean IsSubsetOfDemo()
{
boolean returnValue = true;
String fileIO1[] = new String[1] ;
String fileIO2[] = new String[1] ;
FileIOPermission fileIOPerm1[] = new FileIOPermission[1] ;
FileIOPermission fileIOPerm2[] = new FileIOPermission[1] ;
FileIOGenerator fileIOGen1 = new FileIOGenerator();
FileIOGenerator fileIOGen2 = new FileIOGenerator();
fileIOGen1.ResetIndex();
while(fileIOGen1.CreateFilePath(fileIOPerm1, fileIO1,
FileIOPermissionAccess.AllAccess)) {
if (fileIOPerm1[0] == null) {
continue ;
}
Console.WriteLine("***********************"
+ "***********************************\n");
fileIOGen2.ResetIndex();
while(fileIOGen2.CreateFilePath(fileIOPerm2, fileIO2,
FileIOPermissionAccess.AllAccess)) {
String firstPermission = (fileIO1[0].equals("") ==
true | fileIO1[0] == null) ? "null" : fileIO1[0];
String secondPermission = (fileIO2[0].equals("") ==
true | fileIO2[0] == null) ? "null" : fileIO2[0];
if (fileIOPerm2[0] == null) {
continue ;
}
try {
if (fileIOPerm1[0].IsSubsetOf(fileIOPerm2[0])) {
Console.WriteLine((firstPermission
+ " is a subset of "
+ secondPermission + "\n"));
}
else {
Console.WriteLine((firstPermission
+ " is not a subset of "
+ secondPermission + "\n"));
}
}
catch(System.Exception e) {
Console.WriteLine(("An exception was thrown for subset :"
+ ((fileIO1[0].equals("") == true) ?
"null" : (fileIO1[0] + "\n"
+ ((fileIO2[0].equals("") == true) ?
"null" : fileIO2[0]) + "\n" + e))));
}
}
}
return returnValue ;
} //IsSubsetOfDemo
Plattformen
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
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
FileIOPermission-Klasse
FileIOPermission-Member
System.Security.Permissions-Namespace