Freigeben über


SecurityPermission.Copy-Methode

Erstellt eine identische Kopie der aktuellen Berechtigung und gibt die Kopie zurück.

Namespace: System.Security.Permissions
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overrides Function Copy As IPermission
'Usage
Dim instance As SecurityPermission
Dim returnValue As IPermission

returnValue = instance.Copy
public override IPermission Copy ()
public:
virtual IPermission^ Copy () override
public IPermission Copy ()
public override function Copy () : IPermission

Rückgabewert

Eine Kopie der aktuellen Berechtigung.

Hinweise

Eine Kopie einer Berechtigung stellt denselben Ressourcenzugriff dar wie die ursprüngliche Berechtigung.

Beispiel

Im folgenden Codebeispiel soll das Verhalten der Copy-Methode veranschaulicht werden, auf ihre Verwendung wird jedoch nicht eingegangen. Im Allgemeinen werden die Methoden von Berechtigungsklassen durch die Sicherheitsinfrastruktur verwendet und sind nicht für die Verwendung in Anwendungen bestimmt. Im folgenden Codebeispiel wird jedoch veranschaulicht, wie sich die Methode verhält, wenn sie vom Code aus ausgeführt wird. Den vollständigen Beispielcode finden Sie in der SecurityPermission-Klasse.

    Private Function CopyDemo() As Boolean

        Dim returnValue As Boolean = True

        Dim Security1 As SecurityPermissionFlag
        Dim SecurityPerm1, SecurityPerm2 As SecurityPermission

        Dim SecurityGen1 As New SecurityGenerator()
        Dim SecurityGen2 As New SecurityGenerator()

        SecurityGen1.ResetIndex()
        While SecurityGen1.GetSecurityFlag(Security1)
            SecurityPerm1 = New SecurityPermission(Security1)
            SecurityGen2.ResetIndex()
            Console.WriteLine("********************************************************" & ControlChars.Lf)
            Try
                SecurityPerm2 = CType(SecurityPerm1.Copy(), SecurityPermission)
                Console.WriteLine(("Result of copy = " & SecurityPerm2.ToString()))

            Catch e As Exception
                Console.WriteLine(("Copy failed :" & SecurityPerm1.ToString() & e.ToString()))
                GoTo ContinueWhile1
            End Try
ContinueWhile1:
        End While
        Return returnValue
    End Function 'CopyDemo
private bool CopyDemo()
{

    bool returnValue = true;

    SecurityPermissionFlag security1;
    SecurityPermission securityPerm1,securityPerm2;

    SecurityGenerator SecurityGen1 = new SecurityGenerator();
    SecurityGenerator SecurityGen2 = new SecurityGenerator();

    SecurityGen1.ResetIndex();
    while(SecurityGen1.GetSecurityFlag( out security1 ))
    {
        securityPerm1 = new SecurityPermission(security1);
        SecurityGen2.ResetIndex();
        Console.WriteLine("********************************************************\n");
        try
        {
            securityPerm2 = (SecurityPermission)securityPerm1.Copy();
            Console.WriteLine("Result of copy = " + securityPerm2.ToString());

        }
        catch(Exception e)
        {
            Console.WriteLine("Copy failed :" + securityPerm1.ToString() + e);
            continue;
        }
    }
    return returnValue;
}
bool CopyDemo()
{
   bool returnValue = true;
   SecurityPermissionFlag security1;
   SecurityPermission^ securityPerm1;
   SecurityPermission^ securityPerm2;
   SecurityGenerator^ SecurityGen1 = gcnew SecurityGenerator;
   SecurityGenerator^ SecurityGen2 = gcnew SecurityGenerator;
   SecurityGen1->ResetIndex();
   while ( SecurityGen1->GetSecurityFlag( &security1 ) )
   {
      securityPerm1 = gcnew SecurityPermission(security1);
               continue;

      SecurityGen2->ResetIndex();
      Console::WriteLine( "********************************************************\n" );
      try
      {
         securityPerm2 = dynamic_cast<SecurityPermission^>(securityPerm1->Copy());
         Console::WriteLine( "Result of copy = {0}", securityPerm2 );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Copy failed :{0}{1}", securityPerm1, e );
         continue;
      }

   }

   return returnValue;
}

private boolean CopyDemo() 
{
    boolean returnValue = true;
    
    SecurityPermissionFlag security1[] = new SecurityPermissionFlag[1];
    SecurityPermission securityPerm1[] = new SecurityPermission[1];
    SecurityPermission securityPerm2[] = new SecurityPermission[1];
    
    SecurityGenerator securityGen1 =  new SecurityGenerator();
    SecurityGenerator securityGen2 =  new SecurityGenerator();
    
    securityGen1.ResetIndex();
    while (securityGen1.CreateSecurity(securityPerm1, security1)) {
        if (securityPerm1[0] == null) {
            continue ;
        }
        securityGen2.ResetIndex();
        Console.WriteLine("***************************************" 
            + "*****************\n");
        try {
            securityPerm2[0] =((SecurityPermission)(
                securityPerm1[0].Copy()));
            Console.WriteLine(("Result of copy = " 
                + securityPerm2[0].ToString()));
        } 
        catch(System.Exception e) {
            Console.WriteLine(("Copy failed :" 
                + securityPerm1[0].ToString() + e));
            continue ;
        }
    }
    return returnValue ;
} //CopyDemo

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

SecurityPermission-Klasse
SecurityPermission-Member
System.Security.Permissions-Namespace