次の方法で共有


DnsPermission.IsSubsetOf メソッド

現在のアクセス許可インスタンスが、指定したアクセス許可インスタンスのサブセットかどうかを判断します。

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
    サブセットの関係を調べる 2 番目の DnsPermission インスタンス。

戻り値

現在のインスタンスが無制限で、 target が null 参照 (Visual Basic では Nothing) または無制限のいずれかの場合は false 。それ以外の場合は true

実装

IPermission.IsSubsetOf

例外

例外の種類 条件
ArgumentException targetDnsPermission でも null 参照 (Visual Basic では Nothing) でもありません。

解説

現在の DnsPermission インスタンスで指定される操作の集合が、指定した DnsPermission インスタンスに完全に含まれる場合、現在の DnsPermission インスタンスは指定した DnsPermission インスタンスのサブセットです。

IsSubsetOf メソッドが true を返す場合、現在の DnsPermission インスタンスは、指定した DnsPermission インスタンスが DNS サーバーに対して持っているアクセス権限よりも低いアクセス権限しか許可しません。

使用例

[Visual Basic, C#, C++] IsSubsetOf メソッドを使用して、現在のアクセス許可インスタンスが指定したアクセス許可インスタンスのサブセットかどうかを判断する例を次に示します。

 
Public Sub useDns()
    ' Create a DnsPermission instance.
    permission = New DnsPermission(PermissionState.Unrestricted)
    Dim dnsPermission1 As New DnsPermission(PermissionState.None)
    ' Check  for permission.
    permission.Demand()
    dnsPermission1.Demand()
    ' Print the attributes and values.
    Console.WriteLine("Attributes and Values of 'DnsPermission' instance :")
    PrintKeysAndValues(permission.ToXml().Attributes)
    Console.WriteLine("Attributes and Values of specified 'DnsPermission' instance :")
    PrintKeysAndValues(dnsPermission1.ToXml().Attributes)
    Subset(dnsPermission1)
End Sub 'useDns


Private Sub Subset(Permission1 As DnsPermission)
    If permission.IsSubsetOf(Permission1) Then
        Console.WriteLine("Current 'DnsPermission' instance is a subset of specified 'DnsPermission' instance.")
    Else
        Console.WriteLine("Current 'DnsPermission' instance is not a subset of specified 'DnsPermission' instance.")
    End If
End Sub 'Subset
 
Private Sub PrintKeysAndValues(myList As Hashtable)
    ' Get the enumerator that can iterate through the hash table.
    Dim myEnumerator As IDictionaryEnumerator = myList.GetEnumerator()
    Console.WriteLine(ControlChars.Tab + "-KEY-" + ControlChars.Tab + "-VALUE-")
    While myEnumerator.MoveNext()
        Console.WriteLine(ControlChars.Tab + "{0}:" + ControlChars.Tab + "{1}", myEnumerator.Key, myEnumerator.Value)
    End While
    Console.WriteLine()
End Sub 'PrintKeysAndValues


[C#] 
public void useDns() {
   // Create a DnsPermission instance.
   permission = new DnsPermission(PermissionState.Unrestricted);
   DnsPermission dnsPermission1 = new DnsPermission(PermissionState.None);
   // Check for permission.
   permission.Demand();
   dnsPermission1.Demand();
   // Print the attributes and values.
   Console.WriteLine("Attributes and Values of 'DnsPermission' instance :");
   PrintKeysAndValues(permission.ToXml().Attributes);
   Console.WriteLine("Attributes and Values of specified 'DnsPermission' instance :");
   PrintKeysAndValues(dnsPermission1.ToXml().Attributes);
   Subset(dnsPermission1);
}

private void Subset(DnsPermission Permission1)
{
   if(permission.IsSubsetOf(Permission1))
      Console.WriteLine("Current 'DnsPermission' instance is a subset of specified 'DnsPermission' instance.");
   else
      Console.WriteLine("Current 'DnsPermission' instance is not a subset of specified 'DnsPermission' instance.");
}

private void PrintKeysAndValues(Hashtable myList) {
   // Get the enumerator that can iterate through the hash table.
   IDictionaryEnumerator myEnumerator = myList.GetEnumerator();
   Console.WriteLine("\t-KEY-\t-VALUE-");
   while (myEnumerator.MoveNext())
      Console.WriteLine("\t{0}:\t{1}", myEnumerator.Key, myEnumerator.Value);
   Console.WriteLine();
}

[C++] 
public:
   void useDns() 
   {
      // Create a DnsPermission instance.
      permission = new DnsPermission(PermissionState::Unrestricted);
      DnsPermission* dnsPermission1 = new DnsPermission(PermissionState::None);
      // Check for permission.
      permission->Demand();
      dnsPermission1->Demand();
      // Print the attributes and values.
      Console::WriteLine(S"Attributes and Values of 'DnsPermission' instance :");
      PrintKeysAndValues(permission->ToXml()->Attributes);
      Console::WriteLine(S"Attributes and Values of specified 'DnsPermission' instance :");
      PrintKeysAndValues(dnsPermission1->ToXml()->Attributes);
      Subset(dnsPermission1);
   }

private:
   void Subset(DnsPermission* Permission1) 
   {
      if (permission->IsSubsetOf(Permission1))
         Console::WriteLine(S"Current 'DnsPermission' instance is a subset of specified 'DnsPermission' instance.");
      else
         Console::WriteLine(S"Current 'DnsPermission' instance is not a subset of specified 'DnsPermission' instance.");
   }

   void PrintKeysAndValues(Hashtable* myList) 
   {
      // Get the enumerator that can iterate through the hash table.
      IDictionaryEnumerator* myEnumerator = myList->GetEnumerator();
      Console::WriteLine(S"\t-KEY-\t-VALUE-");
      while (myEnumerator->MoveNext())
         Console::WriteLine(S"\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value);
      Console::WriteLine();
   }

[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 ファミリ, Common Language Infrastructure (CLI) Standard

参照

DnsPermission クラス | DnsPermission メンバ | System.Net 名前空間