Freigeben über


DnsPermissionAttribute-Klasse

Gibt Berechtigungen an, mit denen Informationen von DNS-Servern angefordert werden können.

Namespace: System.Net
Assembly: System (in system.dll)

Syntax

'Declaration
<SerializableAttribute> _
<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Constructor Or AttributeTargets.Method, AllowMultiple:=True, Inherited:=False)> _
Public NotInheritable Class DnsPermissionAttribute
    Inherits CodeAccessSecurityAttribute
'Usage
Dim instance As DnsPermissionAttribute
[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple=true, Inherited=false)] 
public sealed class DnsPermissionAttribute : CodeAccessSecurityAttribute
[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets::Assembly|AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Constructor|AttributeTargets::Method, AllowMultiple=true, Inherited=false)] 
public ref class DnsPermissionAttribute sealed : public CodeAccessSecurityAttribute
/** @attribute SerializableAttribute() */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple=true, Inherited=false) */ 
public final class DnsPermissionAttribute extends CodeAccessSecurityAttribute
SerializableAttribute 
AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple=true, Inherited=false) 
public final class DnsPermissionAttribute extends CodeAccessSecurityAttribute

Hinweise

Die von DnsPermissionAttribute deklarierten Sicherheitsinformationen sind in den Metadaten des Attributzieles gespeichert, bei dem es sich um die Klasse handelt, auf die das DnsPermissionAttribute angewendet wird. Das System greift dann zur Laufzeit auf diese Informationen zu. Die dem Konstruktor übergebene SecurityAction bestimmt die zulässigen DNS-Ziele.

Diese Sicherheitsattribute werden nur für Deklarative Sicherheit verwendet. Bei Imperative Sicherheit müssen Sie die entsprechende DnsPermission-Klasse verwenden.

Der Sicherheitszugriff ist entweder vollständig eingeschränkt oder vollständig uneingeschränkt. Legen Sie die Unrestricted-Eigenschaft auf true fest, um den Zugriff zu gewähren, oder auf false, um den Zugriff zu verweigern. Legen Sie diese Eigenschaft als benannten Parameter fest.

Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Beispiel

Im folgenden Beispiel wird die deklarative Sicherheit mithilfe von DnsPermissionAttribute auf eine benutzerdefinierte Klasse angewendet.

' 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
//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());
}
//Uses the DnsPermissionAttribute to restrict access only to those who have permission.

[DnsPermission(SecurityAction::Demand,Unrestricted=true)]
public ref class MyClass
{
public:
   static IPAddress^ GetIPAddress()
   {
      IPAddress^ ipAddress = Dns::Resolve( "localhost" )->AddressList[ 0 ];
      return ipAddress;
   }

};

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

}
// Uses the DnsPermissionAttribute to restrict access only to those who 
// have permission.
/** @attribute DnsPermission(SecurityAction.Demand, Unrestricted = true)
 */
public class MyClass
{
    public static IPAddress GetIPAddress()
    {
        IPAddress ipAddress = (IPAddress)Dns.Resolve(
            "localhost").get_AddressList().get_Item(0);

        return ipAddress;
    } //GetIPAddress

    public static void main(String[] args)
    {
        try {
            //Grants Access.
            Console.WriteLine(" Access granted\n The local host IP " 
                + "Address is :" + MyClass.GetIPAddress().ToString());
        }
        // Denies Access.
        catch (System.Security.SecurityException securityException) {
            Console.WriteLine("Access denied");
            Console.WriteLine(securityException.ToString());
        }
    } //main
} //MyClass

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

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

DnsPermissionAttribute-Member
System.Net-Namespace
CodeAccessSecurityAttribute