次の方法で共有


DnsPermissionAttribute クラス

ドメイン ネーム サーバーの情報を要求するためのアクセス許可を指定します。

この型のすべてのメンバの一覧については、DnsPermissionAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.Security.Permissions.SecurityAttribute
         System.Security.Permissions.CodeAccessSecurityAttribute
            System.Net.DnsPermissionAttribute

<AttributeUsage(AttributeTargets.Assembly Or AttributeTargets.Class _
   Or AttributeTargets.Struct Or AttributeTargets.Constructor Or _
   AttributeTargets.Method)>
<Serializable>
NotInheritable Public Class DnsPermissionAttribute   Inherits CodeAccessSecurityAttribute
[C#]
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class
   | AttributeTargets.Struct | AttributeTargets.Constructor |
   AttributeTargets.Method)]
[Serializable]
public sealed class DnsPermissionAttribute :   CodeAccessSecurityAttribute
[C++]
[AttributeUsage(AttributeTargets::Assembly |
   AttributeTargets::Class | AttributeTargets::Struct |
   AttributeTargets::Constructor | AttributeTargets::Method)]
[Serializable]
public __gc __sealed class DnsPermissionAttribute : public   CodeAccessSecurityAttribute
[JScript]
public
   AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class |
   AttributeTargets.Struct | AttributeTargets.Constructor |
   AttributeTargets.Method)
 Serializable
class DnsPermissionAttribute extends   CodeAccessSecurityAttribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

DnsPermissionAttribute によって宣言されたセキュリティ情報は、 DnsPermissionAttribute が適用されるクラスである属性ターゲットのメタデータに格納されます。その後、システムは、実行時にこの情報にアクセスします。コンストラクタに渡される SecurityAction は、許容 DNS (Domain Name System) ターゲットを判断します。

これらのセキュリティ属性は、 宣言セキュリティ にだけ使用されます。 強制セキュリティ に対しては、対応する DnsPermission クラスを使用します。

セキュリティ アクセスは、完全に制限されるか、完全に無制限かのいずれかです。アクセスを許可するには、 Unrestricted プロパティを true に設定し、アクセスを許可しない場合は false に設定します。このプロパティを名前付きパラメータとして設定します。

属性の使用方法については、「 属性を使用したメタデータの拡張 」を参照してください。

使用例

[Visual Basic, C#, C++] DnsPermissionAttribute を使用して、宣言セキュリティをカスタム クラスに適用する例を次に示します。

 
' Uses the DnsPermissionAttribute to restrict access only to those who have permission.
<DnsPermission(SecurityAction.Demand, Unrestricted := true)>  _
Public Class MyClass1
   
   Public Shared Function GetIPAddress() As IPAddress
      Dim ipAddress As IPAddress = Dns.Resolve("localhost").AddressList(0)
      Return ipAddress
   End Function 'GetIPAddress
   
   Public Shared Sub Main()
      Try
         ' Grants Access.
         Console.WriteLine(("Access granted" + ControlChars.NewLine + " The local host IP Address is :" + MyClass1.GetIPAddress().ToString()))
      ' Denies Access.
      Catch securityException As SecurityException
         Console.WriteLine("Access denied")
         Console.WriteLine(securityException.ToString())
      End Try

[C#] 
//Uses the DnsPermissionAttribute to restrict access only to those who have permission.
[DnsPermission(SecurityAction.Demand, Unrestricted = true)]
public class MyClass{

public static IPAddress GetIPAddress(){
     IPAddress ipAddress = Dns.Resolve("localhost").AddressList[0];
     return ipAddress;
}
public static void Main(){
try{
     //Grants Access.
     Console.WriteLine(" Access granted\n The local host IP Address is :" + 
                                  MyClass.GetIPAddress().ToString());
}
// Denies Access.
catch(SecurityException securityException){
     Console.WriteLine("Access denied");    
     Console.WriteLine(securityException.ToString());
}

[C++] 
//Uses the DnsPermissionAttribute to restrict access only to those who have permission.
[DnsPermission(SecurityAction::Demand, Unrestricted = true)]
public __gc class MyClass{
public:
    static IPAddress* GetIPAddress(){
        IPAddress* ipAddress = Dns::Resolve(S"localhost")->AddressList[0];
        return ipAddress;
    }
};

int main(){
    try{
        //Grants Access.
        Console::WriteLine(S" Access granted\n The local host IP Address is :{0}", MyClass::GetIPAddress());
    }
    // Denies Access.
    catch(SecurityException* securityException){
        Console::WriteLine(S"Access denied");    
        Console::WriteLine(securityException->ToString());
    }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Net

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System (System.dll 内)

参照

DnsPermissionAttribute メンバ | System.Net 名前空間 | CodeAccessSecurityAttribute