現在のアクセス許可が、指定したアクセス許可のサブセットかどうかを判断します。
Overrides Public Function IsSubsetOf( _
ByVal target As IPermission _) As Boolean Implements IPermission.IsSubsetOf
[C#]
public override bool IsSubsetOf(IPermissiontarget);
[C++]
public: bool IsSubsetOf(IPermission* target);
[JScript]
public override function IsSubsetOf(
target : IPermission) : Boolean;
パラメータ
- target
サブセットの関係を調べる対象のアクセス許可。このアクセス許可は、現在のアクセス許可と同じ型である必要があります。
戻り値
現在のアクセス許可が、指定したアクセス許可のサブセットである場合は true 。それ以外の場合は false 。
実装
例外
例外の種類 | 条件 |
---|---|
ArgumentException | target パラメータが null 参照 (Visual Basic では Nothing) ではなく、現在のアクセス許可と同じ型でもありません。 |
解説
現在のアクセス許可で指定されるアクセス操作が、指定したアクセス許可に完全に含まれる場合、現在のアクセス許可は指定したアクセス許可のサブセットです。
現在のアクセス許可と指定したアクセス許可の値の範囲で、 IsSubsetOf の値を次の表に示します。
現在のアクセス許可 | 指定したアクセス許可 | IsSubsetOf |
---|---|---|
www.fourthcoffee.com | www.fourthcoffee.com | true |
www.fourthcoffee.com | www.tailspintoys.com | false |
www.fourthcoffee.com | *.fourthcoffee.com | true |
www.fourthcoffee.com | *.com | true |
*.fourthcoffee.com | www.fourthcoffee.com | false |
*.fourthcoffee.com | *.fourthcoffee.com | true |
*.fourthcoffee.com | *.com | true |
None 以外の任意の文字列 | * | true |
None | 任意の文字列 | true |
使用例
' IsSubsetOf determines whether the current permission is a subset of the specified permission.
Private Function IsSubsetOfDemo() As Boolean
Dim returnCodeCode As Boolean = True
Dim site1, site2 As [String]
Dim successFlag As Boolean
Dim siteIdPerm1, siteIdPerm2 As SiteIdentityPermission
Dim siteGen1 As New SiteGenerator()
Dim siteGen2 As New SiteGenerator()
siteGen1.ResetIndex()
While siteGen1.CreateSite(siteIdPerm1, site1, successFlag)
If siteIdPerm1 Is Nothing Or successFlag = False Then
GoTo ContinueWhile1
End If
siteGen2.ResetIndex()
Console.WriteLine("**************************************************************************")
While siteGen2.CreateSite(siteIdPerm2, site2, successFlag)
Try
If siteIdPerm2 Is Nothing Or successFlag = False Then
GoTo ContinueWhile2
End If
If siteIdPerm1.IsSubsetOf(siteIdPerm2) Then
Console.WriteLine((site1 & " is a subset of " & site2))
Else
Console.WriteLine((site1 & " is not a subset of " & site2))
End If
Catch e As Exception
Console.WriteLine(("An exception was thrown : " & e.ToString()))
Return False
End Try
ContinueWhile2:
End While
ContinueWhile1:
End While
Return returnCodeCode
End Function 'IsSubsetOfDemo
[C#]
// IsSubsetOf determines whether the current permission is a subset of the specified permission.
private bool IsSubsetOfDemo()
{
bool returnCodeCode = true;
String site1,site2;
bool successFlag;
SiteIdentityPermission siteIdPerm1,siteIdPerm2;
SiteGenerator siteGen1 = new SiteGenerator();
SiteGenerator siteGen2 = new SiteGenerator();
siteGen1.ResetIndex();
while(siteGen1.CreateSite(out siteIdPerm1, out site1, out successFlag))
{
if(siteIdPerm1 == null | successFlag == false) continue;
siteGen2.ResetIndex();
Console.WriteLine("**************************************************************************");
while(siteGen2.CreateSite(out siteIdPerm2, out site2, out successFlag))
{
try
{
if(siteIdPerm2 == null | successFlag == false) continue;
if(siteIdPerm1.IsSubsetOf(siteIdPerm2))
{
Console.WriteLine(site1 + " is a subset of " + site2);
}
else
{
Console.WriteLine(site1 + " is not a subset of " + site2);
}
}
catch (Exception e)
{
Console.WriteLine ( "An exception was thrown : " + e);
return false;
}
}
}
return returnCodeCode;
}
[C++]
// IsSubsetOf determines whether the current permission is a subset of the specified permission.
bool IsSubsetOfDemo() {
bool returnCodeCode = true;
String* site1, *site2;
bool successFlag;
SiteIdentityPermission* siteIdPerm1, *siteIdPerm2;
SiteGenerator* siteGen1 = new SiteGenerator();
SiteGenerator* siteGen2 = new SiteGenerator();
siteGen1->ResetIndex();
while(siteGen1->CreateSite(&siteIdPerm1, &site1, &successFlag)) {
if (siteIdPerm1 == 0 || successFlag == false) continue;
siteGen2->ResetIndex();
Console::WriteLine(S"**************************************************************************");
while(siteGen2->CreateSite(&siteIdPerm2, &site2, &successFlag)) {
try {
if (siteIdPerm2 == 0 || successFlag == false) continue;
if (siteIdPerm1->IsSubsetOf(siteIdPerm2)) {
Console::WriteLine(S"{0} is a subset of {1}", site1, site2);
} else {
Console::WriteLine(S"{0} is not a subset of {1}", site1, site2);
}
} catch (Exception* e) {
Console::WriteLine (S"An exception was thrown : {0}", e);
return false;
}
}
}
return returnCodeCode;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
SiteIdentityPermission クラス | SiteIdentityPermission メンバ | System.Security.Permissions 名前空間