Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
System Namespace
AppDomain Class
 Evidence Property
Collapse All/Expand All Collapse All
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
AppDomain..::.Evidence Property

Gets the Evidence associated with this application domain that is used as input to the security policy.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
Visual Basic (Declaration)
Public ReadOnly Property Evidence As Evidence
Visual Basic (Usage)
Dim instance As AppDomain
Dim value As Evidence

value = instance.Evidence
C#
public Evidence Evidence { get; }
Visual C++
public:
virtual property Evidence^ Evidence {
    Evidence^ get () sealed;
}
JScript
public final function get Evidence () : Evidence

Property Value

Type: System.Security.Policy..::.Evidence
Gets the Evidence associated with this application domain that is used as input to the security policy.

Implements

_AppDomain..::.Evidence
IEvidenceFactory..::.Evidence
ExceptionCondition
AppDomainUnloadedException

The operation is attempted on an unloaded application domain.

The following example demonstrates how to use the Evidence property to retrieve the evidence associated with the current application domain. The example modifies the evidence and uses it to create a new application domain.

Visual Basic
Imports System
Imports System.Reflection
Imports System.Security.Policy 'for evidence object
Imports System.Security 'for securityzone object
Imports System.Collections 'for IEnumerator

Class ADCreateDomain

   Public Shared Sub Main()
      ' Create appdomainsetup information for new appdomain.
      Dim domaininfo As New AppDomainSetup()
      domaininfo.ApplicationBase = System.Environment.CurrentDirectory
      domaininfo.ConfigurationFile = System.Environment.CurrentDirectory & "\ADCreateDomain.exe.config"
      domaininfo.ApplicationName = "MyApplication"
      domaininfo.LicenseFile = System.Environment.CurrentDirectory & "\license.txt"

      'Create evidence for the new appdomain.
      Dim adevidence As Evidence = AppDomain.CurrentDomain.Evidence
      'Add the zone and url information to restrict permissions assigned to the appdomain.
      adevidence.AddHost(New Url("http://www.example.com"))
      adevidence.AddHost(New Zone(SecurityZone.Internet))

      ' Create the application domain.
      Dim newDomain As AppDomain = AppDomain.CreateDomain("MyDomain", adevidence, domaininfo)

      ' Write out the application domain information.
      Console.WriteLine("Host domain: " & AppDomain.CurrentDomain.FriendlyName)
      Console.WriteLine("child domain: " & newDomain.FriendlyName)
      Console.WriteLine()
      Console.WriteLine("Application base is: " & newDomain.SetupInformation.ApplicationBase)
      Console.WriteLine("Configuration file is: " & newDomain.SetupInformation.ConfigurationFile)
      Console.WriteLine("Application name is: " & newDomain.SetupInformation.ApplicationName)
      Console.WriteLine("License file is: " & newDomain.SetupInformation.LicenseFile)

      Dim newevidenceenum As IEnumerator = newDomain.Evidence.GetEnumerator()
      While newevidenceenum.MoveNext()
         Console.WriteLine(newevidenceenum.Current)
      End While 

      AppDomain.Unload(newDomain)
   End Sub 'Main 
End Class 'ADCreateDomain 
C#
using System;
using System.Reflection;
using System.Security.Policy;  //for evidence object
using System.Security;  //for securityzone object
using System.Collections;  //for IEnumerator

class ADCreateDomain
{
    public static void Main()
    {
        // Create appdomainsetup information for the new appdomain.
        AppDomainSetup domaininfo = new AppDomainSetup();
        domaininfo.ApplicationBase = System.Environment.CurrentDirectory;
        domaininfo.ConfigurationFile = System.Environment.CurrentDirectory    + "\\ADCreateDomain.exe.config";
        domaininfo.ApplicationName = "MyApplication";
        domaininfo.LicenseFile = System.Environment.CurrentDirectory + "\\license.txt";

        //Create evidence for new appdomain.
        Evidence adevidence = AppDomain.CurrentDomain.Evidence;
        //Add the zone and url information to restrict permissions assigned to the appdomain.
        adevidence.AddHost(new Url("http://www.example.com"));
        adevidence.AddHost(new Zone(SecurityZone.Internet));

        // Create the application domain.
        AppDomain newDomain = AppDomain.CreateDomain("MyDomain", adevidence, domaininfo);

        // Write out the application domain information.
        Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
        Console.WriteLine("child domain: " + newDomain.FriendlyName);
        Console.WriteLine();
        Console.WriteLine("Application base is: " + newDomain.SetupInformation.ApplicationBase);
        Console.WriteLine("Configuration file is: " + newDomain.SetupInformation.ConfigurationFile);
        Console.WriteLine("Application name is: " + newDomain.SetupInformation.ApplicationName);
        Console.WriteLine("License file is: " + newDomain.SetupInformation.LicenseFile);
        
        IEnumerator newevidenceenum = newDomain.Evidence.GetEnumerator();
        while(newevidenceenum.MoveNext())
            Console.WriteLine(newevidenceenum.Current);
        

        AppDomain.Unload(newDomain);
    
        
    }
    
}

Visual C++
using namespace System;
using namespace System::Reflection;
using namespace System::Security::Policy;
//for evidence object
using namespace System::Security;
//for securityzone object
using namespace System::Collections;

//for IEnumerator
int main()
{

   // Create appdomainsetup information for the new appdomain.
   AppDomainSetup^ domaininfo = gcnew AppDomainSetup;
   domaininfo->ApplicationBase = System::Environment::CurrentDirectory;
   domaininfo->ConfigurationFile = System::Environment::CurrentDirectory + "\\ADCreateDomain.exe.config";
   domaininfo->ApplicationName = "MyApplication";
   domaininfo->LicenseFile = System::Environment::CurrentDirectory + "\\license.txt";

   //Create evidence for new appdomain.
   Evidence^ adevidence = AppDomain::CurrentDomain->Evidence;

   //Add the zone and url information to restrict permissions assigned to the appdomain.
   adevidence->AddHost( gcnew Url( "http://www.example.com" ) );
   adevidence->AddHost( gcnew Zone( SecurityZone::Internet ) );

   // Create the application domain.
   AppDomain^ newDomain = AppDomain::CreateDomain( "MyDomain", adevidence, domaininfo );

   // Write out the application domain information.
   Console::WriteLine( "Host domain: {0}", AppDomain::CurrentDomain->FriendlyName );
   Console::WriteLine( "child domain: {0}", newDomain->FriendlyName );
   Console::WriteLine();
   Console::WriteLine( "Application base is: {0}", newDomain->SetupInformation->ApplicationBase );
   Console::WriteLine( "Configuration file is: {0}", newDomain->SetupInformation->ConfigurationFile );
   Console::WriteLine( "Application name is: {0}", newDomain->SetupInformation->ApplicationName );
   Console::WriteLine( "License file is: {0}", newDomain->SetupInformation->LicenseFile );
   IEnumerator^ newevidenceenum = newDomain->Evidence->GetEnumerator();
   while ( newevidenceenum->MoveNext() )
      Console::WriteLine( newevidenceenum->Current );

   AppDomain::Unload( newDomain );
}

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement | Site Feedback
Page view tracker