Evidence クラスとは? わかりやすく解説

Evidence クラス

セキュリティ ポリシーアクセス許可決定するときに使用する一連の情報定義します。このクラス継承できません。

名前空間: System.Security.Policy
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 Evidence
    Implements ICollection, IEnumerable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class Evidence : ICollection,
 IEnumerable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class Evidence sealed : ICollection,
 IEnumerable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class Evidence implements ICollection,
 IEnumerable
SerializableAttribute 
ComVisibleAttribute(true) 
public final class Evidence implements ICollection,
 IEnumerable
解説解説

一般的な形式証拠には、署名や、コード発生源である場所などが含まれますが、どのような情報含めてかまいませんセキュリティ ポリシーによって認識される任意の型のオブジェクト証拠表します

セキュリティ ポリシーは、コード グループ構成されます。アセンブリセキュリティ アクセス許可付与されるコード基本単位ですが、コード グループメンバシップ条件満たしている場合に、そのコード グループメンバなります証拠とは、ポリシー渡される一連の情報であり、アセンブリ属しているコード グループ判断するためにメンバシップ条件によって使用されます。

Evidence クラスは、証拠を表すオブジェクト セット格納しているコレクション (ICollection のトピック参照) です。このクラスには、証拠提供元 (ホストおよびアセンブリ) に対応する 2 つ証拠セット格納されます。

ポリシーは、コード与えアクセス許可評価するときに、2 つ異な提供元から証拠取得できます

使用例使用例

ホストおよびアセンブリ提供する 2 つ証拠使用して新しEvidence クラス作成する方法次のコード例示します

Imports System
Imports System.Collections
Imports System.Security
Imports System.Security.Policy
Imports System.Security.Permissions
Imports System.Globalization
Imports Microsoft.VisualBasic



Public Class Evidence_Example

    Public Function CreateEvidence() As
 Boolean
        Dim retVal As Boolean
 = True

        Try
            ' Create empty evidence using the default contructor.
            Dim ev1 As New
 Evidence
            Console.WriteLine("Created empty evidence with the
 default constructor.")

            ' Constructor used to create null host evidence.
            Dim ev2a As New
 Evidence(Nothing)
            Console.WriteLine("Created an Evidence object with
 null host evidence.")

            ' Constructor used to create host evidence.
            Dim url As New
 Url("http://www.treyresearch.com")
            Console.WriteLine(("Adding host evidence "
 & url.ToString()))
            ev2a.AddHost(url)
            Dim ev2b As New
 Evidence(ev2a)
            Console.WriteLine("Copy evidence into new evidence")
            Dim enum1 As IEnumerator = ev2b.GetHostEnumerator()
            enum1.MoveNext()
            Console.WriteLine(enum1.Current.ToString())
            ' Constructor used to create both host and assembly evidence.
            Dim oa1() As [Object]
            Dim site As New
 Site("www.wideworldimporters.com")
            Dim oa2 As [Object]() = {url, site}
            Dim ev3a As New
 Evidence(oa1, oa2)
            enum1 = ev3a.GetHostEnumerator()
            Dim enum2 As IEnumerator = ev3a.GetAssemblyEnumerator()
            enum2.MoveNext()
            Dim obj1 As [Object] = enum2.Current
            enum2.MoveNext()
            Console.WriteLine(("URL = " & obj1.ToString()
 & "  Site = " & enum2.Current.ToString()))
            ' Constructor used to create null host and null assembly
 evidence.
            Dim ev3b As New
 Evidence(Nothing, Nothing)
            Console.WriteLine("Create new evidence with null host
 and assembly evidence")

        Catch e As Exception
            Console.WriteLine("Fatal error: {0}",
 e.ToString())
            Return False
        End Try

        Return retVal
    End Function 'CreateEvidence

    Public Function DemonstrateEvidenceMembers()
 As Evidence
        Dim myEvidence As New
 Evidence
        Dim sPubKeyBlob As String
 = "00240000048000009400000006020000" & "00240000525341310004000001000100"
 & "19390E945A40FB5730204A25FA5DC4DA" & "B18688B412CB0EDB87A6EFC50E2796C9" & "B41AD3040A7E46E4A02516C598678636"
 & "44A0F74C39B7AB9C38C01F10AF4A5752" & "BFBCDF7E6DD826676AD031E7BCE63393" & "495BAD2CA4BE03B529A73C95E5B06BE7" & "35CA0F622C63E8F54171BD73E4C8F193" & "CB2664163719CA41F8159B8AC88F8CD3"
        Dim pubkey As [Byte]() = HexsToArray(sPubKeyBlob)

        ' Create a strong name.
        Dim mSN As New StrongName(New
 StrongNamePublicKeyBlob(pubkey), "SN01", New
 Version("0.0.0.0"))

        ' Create assembly and host evidence.
        Console.WriteLine("Adding assembly evidence.")
        myEvidence.AddAssembly("SN01")
        myEvidence.AddAssembly(New Version("0.0.0.0"))
        myEvidence.AddAssembly(mSN)
        Console.WriteLine(("Count of evidence items = "
 & myEvidence.Count.ToString()))
        Dim url As New Url("http://www.treyresearch.com")
        Console.WriteLine(("Adding host evidence "
 & url.ToString()))
        myEvidence.AddHost(url)
        PrintEvidence(myEvidence).ToString()
        Console.WriteLine(("Count of evidence items = "
 & myEvidence.Count.ToString()))
        Console.WriteLine(ControlChars.Lf & "Copy the evidence
 to an array using CopyTo, then display the array.")
        Dim evidenceArray(myEvidence.Count - 1) As
 Object
        myEvidence.CopyTo(evidenceArray, 0)
        Dim obj As Object
        For Each obj In
 evidenceArray
            Console.WriteLine(obj.ToString())
        Next obj
        Console.WriteLine(ControlChars.Lf & "Display the contents
 of the properties.")
        Console.WriteLine("Locked is the only property normally
 used by code.")
        Console.WriteLine("IsReadOnly, IsSynchronized, and SyncRoot
 properties are not normally used.")
        Console.WriteLine((ControlChars.Lf & "The default
 value for the Locked property = " & myEvidence.Locked.ToString()))
        Console.WriteLine(ControlChars.Lf & "Get the hashcode
 for the evidence.")
        Console.WriteLine(("HashCode = " & myEvidence.GetHashCode().ToString()))
        Console.WriteLine(ControlChars.Lf & "Get the type
 for the evidence.")
        Console.WriteLine(("Type = " & myEvidence.GetType().ToString()))
        Console.WriteLine(ControlChars.Lf & "Merge new evidence
 with the current evidence.")
        Dim oa1() As [Object]
        Dim site As New
 Site("www.wideworldimporters.com")
        Dim oa2 As [Object]() = {url, site}
        Dim newEvidence As New
 Evidence(oa1, oa2)
        myEvidence.Merge(newEvidence)

        Console.WriteLine(("Evidence count = " &
 PrintEvidence(myEvidence).ToString()))
        Console.WriteLine(ControlChars.Lf & "Remove URL evidence.")
        myEvidence.RemoveType(url.GetType())
        Console.WriteLine(("Evidence count is now: "
 & myEvidence.Count.ToString()))
        Console.WriteLine(ControlChars.Lf & "Make a copy of
 the current evidence.")
        Dim evidenceCopy As New
 Evidence(myEvidence)
        Console.WriteLine(("Count of new evidence items = "
 & evidenceCopy.Count.ToString()))
        Console.WriteLine(("Does the copy equal the current evidence?
 " & myEvidence.Equals(evidenceCopy)))
        Console.WriteLine(ControlChars.Lf & "Clear the current
 evidence.")
        myEvidence.Clear()
        Console.WriteLine(("Count is now " & myEvidence.Count.ToString()))
        Return myEvidence
    End Function 'DemonstrateEvidenceMembers

    Public Shared Function
 PrintEvidence(ByVal myEvidence As Evidence)
 As Integer
        Dim p As Integer
 = 0
        Console.WriteLine(ControlChars.Lf & "Current evidence
 = ")
        If myEvidence Is Nothing
 Then
            Return 0
        End If
        Dim list As IEnumerator = myEvidence.GetEnumerator()
        Dim obj As Object
        While list.MoveNext()
            Console.WriteLine(list.Current.ToString())
            p = p + 1
        End While
        Console.WriteLine(ControlChars.Lf)
        Return p
    End Function 'PrintEvidence

    ' Convert a hexidecimal string to an array.
    Public Shared Function
 HexsToArray(ByVal sHexString As String)
 As Byte()
        Dim array(sHexString.Length / 2) As
 [Byte]
        Dim i As Integer
        For i = 0 To sHexString.Length - 2
 Step 2
            array((i / 2)) = [Byte].Parse(sHexString.Substring(i, 2), NumberStyles.HexNumber)
        Next i
        Return array
    End Function 'HexsToArray




    ' Main method.
    Public Shared Sub Main()
        Try
            Dim EvidenceTest As New
 Evidence_Example
            Dim ret As Boolean
 = EvidenceTest.CreateEvidence()
            If ret Then
                Console.WriteLine("Evidence successfully created.")
            Else
                Console.WriteLine("Evidence creation failed.")
            End If

            EvidenceTest.DemonstrateEvidenceMembers()
        Catch e As Exception
            Console.WriteLine(e.ToString())
            Environment.ExitCode = 101
        End Try
    End Sub 'Main
End Class 'Evidence_Example
using System;
using System.Collections;
using System.Security;
using System.Security.Policy;
using System.Security.Permissions;
using System.Globalization;

public class Evidence_Example
{
    public bool CreateEvidence()
    {
        bool retVal = true;

        try
        {
            // Create empty evidence using the default contructor.
            Evidence ev1 = new Evidence();
            Console.WriteLine("Created empty evidence with the default
 constructor.");

            // Constructor used to create null host evidence.
            Evidence ev2a = new Evidence(null);
            Console.WriteLine("Created an Evidence object with null
 host evidence.");

            // Constructor used to create host evidence.
            Url url = new Url("http://www.treyresearch.com");
            Console.WriteLine("Adding host evidence " + url.ToString());
            ev2a.AddHost(url);
            Evidence ev2b = new Evidence(ev2a);
            Console.WriteLine("Copy evidence into new evidence");
            IEnumerator enum1 = ev2b.GetHostEnumerator();
            enum1.MoveNext();
            Console.WriteLine(enum1.Current.ToString());
            
            // Constructor used to create both host and assembly evidence.
            Object [] oa1 = {};
            Site site = new Site("www.wideworldimporters.com");
            Object [] oa2 = { url, site };
            Evidence ev3a = new Evidence(oa1, oa2);
            enum1 = ev3a.GetHostEnumerator();
            IEnumerator enum2 = ev3a.GetAssemblyEnumerator();
            enum2.MoveNext();
            Object obj1 = enum2.Current;
            enum2.MoveNext();
            Console.WriteLine("URL = " + obj1.ToString() + "  Site
 = " + enum2.Current.ToString());
            
            // Constructor used to create null host and null assembly
 evidence.
            Evidence ev3b = new Evidence(null,
 null);
            Console.WriteLine("Create new evidence with null
 host and assembly evidence");
            
        }
        catch (Exception e)
        {
            Console.WriteLine("Fatal error: {0}", e.ToString());
            return false;
        }

        return retVal;
    }
    public Evidence DemonstrateEvidenceMembers()
    {
        Evidence myEvidence = new Evidence();
        string sPubKeyBlob =    "00240000048000009400000006020000"
 + 
            "00240000525341310004000001000100" + 
            "19390E945A40FB5730204A25FA5DC4DA" + 
            "B18688B412CB0EDB87A6EFC50E2796C9" + 
            "B41AD3040A7E46E4A02516C598678636" + 
            "44A0F74C39B7AB9C38C01F10AF4A5752" + 
            "BFBCDF7E6DD826676AD031E7BCE63393" + 
            "495BAD2CA4BE03B529A73C95E5B06BE7" + 
            "35CA0F622C63E8F54171BD73E4C8F193" + 
            "CB2664163719CA41F8159B8AC88F8CD3";
        Byte[] pubkey = HexsToArray(sPubKeyBlob);

        // Create a strong name.
        StrongName mSN = new StrongName(new
 StrongNamePublicKeyBlob(pubkey), "SN01", new Version("0.0.0.0"));

        // Create assembly and host evidence.
        Console.WriteLine("Adding assembly evidence.");
        myEvidence.AddAssembly("SN01");
        myEvidence.AddAssembly(new Version("0.0.0.0"));
        myEvidence.AddAssembly(mSN);
        Console.WriteLine("Count of evidence items = " + myEvidence.Count.ToString());
        Url url = new Url("http://www.treyresearch.com");
        Console.WriteLine("Adding host evidence " + url.ToString());
        myEvidence.AddHost(url);
        PrintEvidence(myEvidence).ToString();
        Console.WriteLine("Count of evidence items = " + myEvidence.Count.ToString());
        Console.WriteLine("\nCopy the evidence to an array using
 CopyTo, then display the array.");
        object[] evidenceArray = new object[myEvidence.Count];
        myEvidence.CopyTo(evidenceArray, 0);
        foreach (object obj in evidenceArray)
        {
            Console.WriteLine(obj.ToString());
        }
        Console.WriteLine("\nDisplay the contents of the properties.");
        Console.WriteLine("Locked is the only property normally used by code.");
        Console.WriteLine("IsReadOnly, IsSynchronized, and SyncRoot properties
 are not normally used.");
        Console.WriteLine("\nThe default value for
 the Locked property = " + myEvidence.Locked.ToString());
        
        Console.WriteLine("\nGet the hashcode for the evidence.");
        Console.WriteLine("HashCode = " + myEvidence.GetHashCode().ToString());
        Console.WriteLine("\nGet the type for the evidence.");
        Console.WriteLine("Type = " + myEvidence.GetType().ToString());
        Console.WriteLine("\nMerge new evidence with the
 current evidence.");
        Object [] oa1 = {};
        Site site = new Site("www.wideworldimporters.com");
        Object [] oa2 = { url, site };
        Evidence newEvidence = new Evidence(oa1, oa2);
        myEvidence.Merge(newEvidence);
        Console.WriteLine("Evidence count = " + PrintEvidence(myEvidence).ToString());
        Console.WriteLine("\nRemove URL evidence.");
        myEvidence.RemoveType(url.GetType());
        Console.WriteLine("Evidence count is now: " + myEvidence.Count.ToString());
        Console.WriteLine("\nMake a copy of the current evidence.");
        Evidence evidenceCopy = new Evidence(myEvidence);
        Console.WriteLine("Count of new evidence items =
 " + evidenceCopy.Count);
        Console.WriteLine("Does the copy equal the current evidence? "
 + myEvidence.Equals(evidenceCopy));
        Console.WriteLine("\nClear the current evidence.");
        myEvidence.Clear();
        Console.WriteLine("Count is now " + myEvidence.Count.ToString());
        return myEvidence;
    }
    public static int PrintEvidence(Evidence
 myEvidence)
    {
        int p = 0;
        Console.WriteLine("\nCurrent evidence = ");
        if (null == myEvidence) return
 0;
        IEnumerator list = myEvidence.GetEnumerator();
        while (list.MoveNext())
        {
            Console.WriteLine(list.Current.ToString());
        }

        Console.WriteLine("\n");
        return p;
    }
    // Convert a hexidecimal string to an array.
    public static byte[] HexsToArray(string
 sHexString)
    {
        Byte[] array = new Byte[sHexString.Length/2];
        for (int i = 0; i < sHexString.Length;
 i += 2)
        {
            array[i / 2] = Byte.Parse(sHexString.Substring(i, 2), NumberStyles.HexNumber);
        }
        return array;
    }



    // Main method.
    public static void Main()
    {
        try
        {
            Evidence_Example EvidenceTest = new Evidence_Example();
            bool ret = EvidenceTest.CreateEvidence();
            if (ret)
            {
                Console.WriteLine("Evidence successfully created.");
            }
            else
            {
                Console.WriteLine("Evidence creation failed.");
            }
            
            EvidenceTest.DemonstrateEvidenceMembers();
        }
        catch(Exception e)
        {
    
            Console.WriteLine(e.ToString());
            Environment.ExitCode = 101;
        }
    }
}
using namespace System;
using namespace System::Collections;
using namespace System::Security;
using namespace System::Security::Policy;
using namespace System::Security::Permissions;
using namespace System::Globalization;
public ref class Evidence_Example
{
public:
   bool CreateEvidence()
   {
      bool retVal = true;
      try
      {
         // Create empty evidence using the default contructor.
         Evidence^ ev1 = gcnew Evidence;
         Console::WriteLine( "Created empty evidence with the default
 constructor." );

         // Constructor used to create null host evidence.
         Evidence^ ev2a = gcnew Evidence( nullptr );
         Console::WriteLine( "Created an Evidence object with null
 host evidence." );

         // Constructor used to create host evidence.
         Url^ url = gcnew Url( "http://www.treyresearch.com"
 );
         Console::WriteLine( "Adding host evidence {0}", url );
         ev2a->AddHost( url );
         Evidence^ ev2b = gcnew Evidence( ev2a );
         Console::WriteLine( "Copy evidence into new evidence"
 );
         IEnumerator^ enum1 = ev2b->GetHostEnumerator();
         enum1->MoveNext();
         Console::WriteLine( enum1->Current );

         // Constructor used to create both host and assembly evidence.
         array<Object^>^oa1 = {};
         Site^ site = gcnew Site( "www.wideworldimporters.com" );
         array<Object^>^oa2 = {url,site};
         Evidence^ ev3a = gcnew Evidence( oa1,oa2 );
         enum1 = ev3a->GetHostEnumerator();
         IEnumerator^ enum2 = ev3a->GetAssemblyEnumerator();
         enum2->MoveNext();
         Object^ obj1 = enum2->Current;
         enum2->MoveNext();
         Console::WriteLine( "URL = {0}  Site = {1}", obj1, enum2->Current
 );
         
         // Constructor used to create null host and null assembly evidence.
         Evidence^ ev3b = gcnew Evidence( nullptr,nullptr );
         Console::WriteLine( "Create new evidence with null
 host and assembly evidence" );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Fatal error: {0}", e );
         return false;
      }

      return retVal;
   }

   Evidence^ DemonstrateEvidenceMembers()
   {
      Evidence^ myEvidence = gcnew Evidence;
      String^ sPubKeyBlob = "00240000048000009400000006020000"
      "00240000525341310004000001000100"
      "19390E945A40FB5730204A25FA5DC4DA"
      "B18688B412CB0EDB87A6EFC50E2796C9"
      "B41AD3040A7E46E4A02516C598678636"
      "44A0F74C39B7AB9C38C01F10AF4A5752"
      "BFBCDF7E6DD826676AD031E7BCE63393"
      "495BAD2CA4BE03B529A73C95E5B06BE7"
      "35CA0F622C63E8F54171BD73E4C8F193"
      "CB2664163719CA41F8159B8AC88F8CD3";
      array<Byte>^pubkey = HexsToArray( sPubKeyBlob );

      // Create a strong name.
      StrongName^ mSN = gcnew StrongName( gcnew StrongNamePublicKeyBlob( pubkey ),"SN01",gcnew
 Version( "0.0.0.0" ) );

      // Create assembly and host evidence.
      Console::WriteLine( "Adding assembly evidence." );
      myEvidence->AddAssembly( "SN01" );
      myEvidence->AddAssembly( gcnew Version( "0.0.0.0" ) );
      myEvidence->AddAssembly( mSN );
      Console::WriteLine( "Count of evidence items = {0}", myEvidence->Count
 );

      Url^ url = gcnew Url( "http://www.treyresearch.com"
 );
      Console::WriteLine( "Adding host evidence {0}", url );
      myEvidence->AddHost( url );
      PrintEvidence( myEvidence ).ToString();
      Console::WriteLine( "Count of evidence items = {0}", myEvidence->Count
 );

      Console::WriteLine( "\nCopy the evidence to an array using
 CopyTo, then display the array." );
      array<Object^>^evidenceArray = gcnew array<Object^>(myEvidence->Count);
      myEvidence->CopyTo( evidenceArray, 0 );
      for each (Object^ obj in evidenceArray)
      {
         Console::WriteLine(obj->ToString());
      }

      Console::WriteLine( "\nDisplay the contents of the properties." );
      Console::WriteLine( "Locked is the only property normally used by code."
 );
      Console::WriteLine( "IsReadOnly, IsSynchronized, and SyncRoot properties
 are not normally used." );
      
      Console::WriteLine( "\nThe default value for
 the Locked property = {0}", myEvidence->Locked );

      Console::WriteLine( "\nGet the hashcode for the evidence."
 );
      Console::WriteLine( "HashCode = {0}", myEvidence->GetHashCode()
 );

      Console::WriteLine( "\nGet the type for the evidence."
 );
      Console::WriteLine( "Type = {0}", myEvidence->GetType() );

      Console::WriteLine( "\nMerge new evidence with the
 current evidence." );
      array<Object^>^oa1 = {};
      Site^ site = gcnew Site( "www.wideworldimporters.com" );
      array<Object^>^oa2 = {url,site};
      Evidence^ newEvidence = gcnew Evidence( oa1,oa2 );
      myEvidence->Merge( newEvidence );
      Console::WriteLine( "Evidence count = {0}", PrintEvidence( myEvidence
 ) );

      Console::WriteLine( "\nRemove URL evidence." );
      myEvidence->RemoveType( url->GetType() );
      Console::WriteLine( "Evidence count is now: {0}", myEvidence->Count
 );

      Console::WriteLine( "\nMake a copy of the current evidence." );
      Evidence^ evidenceCopy = gcnew Evidence( myEvidence );
      Console::WriteLine( "Count of new evidence items =
 {0}", evidenceCopy->Count );
      Console::WriteLine( "Does the copy equal the current evidence? {0}",
 myEvidence->Equals( evidenceCopy ) );

      Console::WriteLine( "\nClear the current evidence." );
      myEvidence->Clear();
      Console::WriteLine( "Count is now {0}", myEvidence->Count );

      return myEvidence;
   }

   static int PrintEvidence( Evidence^ myEvidence
 )
   {
      int p = 0;
      Console::WriteLine( "\nCurrent evidence = " );
      if ( nullptr == myEvidence )
            return 0;

      IEnumerator^ list = myEvidence->GetEnumerator();
      IEnumerator^ myEnum1 = list;
      while ( myEnum1->MoveNext() )
      {
         Object^ obj = safe_cast<Object^>(myEnum1->Current);
         Console::WriteLine( obj );
         p++;
      }

      Console::WriteLine( "\n" );
      return p;
   }

   // Convert a hexadecimal string to an array.
   static array<Byte>^ HexsToArray( String^ sHexString )
   {
      array<Byte>^arr = gcnew array<Byte>(sHexString->Length / 2);
      for ( int i = 0; i < sHexString->Length;
 i += 2 )
      {
         arr[ i / 2 ] = Byte::Parse( sHexString->Substring( i, 2 ), NumberStyles::HexNumber
 );

      }
      return arr;
   }
};


// Main method.
int main()
{
   try
   {
      Evidence_Example^ EvidenceTest = gcnew Evidence_Example;
      bool ret = EvidenceTest->CreateEvidence();
      if ( ret )
      {
         Console::WriteLine( "Evidence successfully created." );
      }
      else
      {
         Console::WriteLine( "Evidence creation failed." );
      }
      EvidenceTest->DemonstrateEvidenceMembers();
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e );
      Environment::ExitCode = 101;
   }
}
import System.*;
import System.Collections.*;
import System.Security.*;
import System.Security.Policy.*;
import System.Security.Permissions.*;
import System.Globalization.*;
import System.Byte;

public class EvidenceExample
{
    public boolean CreateEvidence()
    {
        boolean retVal = true;

        try {
            // Create empty evidence using the default contructor.
            Evidence ev1 = new Evidence();
            Console.WriteLine("Created empty evidence with the " 
                + " default constructor.");

            // Constructor used to create null host evidence.
            Evidence ev2a = new Evidence(null);
            Console.WriteLine("Created an Evidence object with " 
                + " null host evidence.");

            // Constructor used to create host evidence.
            Url url = new Url("http://www.treyresearch.com");
            Console.WriteLine(("Adding host evidence " + url.ToString()));
            ev2a.AddHost(url);
            Evidence ev2b = new Evidence(ev2a);
            Console.WriteLine("Copy evidence into new evidence");

            IEnumerator enum1 = ev2b.GetHostEnumerator();
            enum1.MoveNext();
            Console.WriteLine(enum1.get_Current().ToString());

            // Constructor used to create both host and assembly evidence.
            Object oa1[] = null;
            Site site = new Site("www.wideworldimporters.com");
            Object oa2[] =  { url, site };
            Evidence ev3a = new Evidence(oa1, oa2);
            enum1 = ev3a.GetHostEnumerator();
            IEnumerator enum2 = ev3a.GetAssemblyEnumerator();
            enum2.MoveNext();
            Object obj1 = enum2.get_Current();
            enum2.MoveNext();
            Console.WriteLine(("URL = " + obj1.ToString() + "  Site
 = " 
                + enum2.get_Current().ToString()));

            // Constructor used to create null host and null assembly
 evidence.
            Evidence ev3b = new Evidence(null,
 null);
            Console.WriteLine("Create new evidence with null
 host and " 
                + " assembly evidence");
        }
        catch (System.Exception e) {
            Console.WriteLine("Fatal error: {0}", e.ToString());
            return false;
        }
        return retVal;
    } //CreateEvidence

    public Evidence DemonstrateEvidenceMembers()
    {
        Evidence myEvidence = new Evidence();
        String sPubKeyBlob = "00240000525341310004000001000100" 
            + "19390E945A40FB5730204A25FA5DC4DA" 
            + "B18688B412CB0EDB87A6EFC50E2796C9" 
            + "B41AD3040A7E46E4A02516C598678636" 
            + "44A0F74C39B7AB9C38C01F10AF4A5752" 
            + "BFBCDF7E6DD826676AD031E7BCE63393" 
            + "495BAD2CA4BE03B529A73C95E5B06BE7" 
            + "35CA0F622C63E8F54171BD73E4C8F193" 
            + "CB2664163719CA41F8159B8AC88F8CD3";
        Byte pubkey[] = HexsToArray(sPubKeyBlob);

        // Create a strong name.
        StrongName mSN = new StrongName(
            new StrongNamePublicKeyBlob((ubyte[])pubkey), "SN01",
 
                new Version("0.0.0.0"));

        // Create assembly and host evidence.
        Console.WriteLine("Adding assembly evidence.");
        myEvidence.AddAssembly("SN01");
        myEvidence.AddAssembly(new Version("0.0.0.0"));
        myEvidence.AddAssembly(mSN);
        Console.WriteLine(("Count of evidence items = " 
            + myEvidence.get_Count()));

        Url url = new Url("http://www.treyresearch.com");
        Console.WriteLine(("Adding host evidence " + url.ToString()));
        myEvidence.AddHost(url);
        String.valueOf(PrintEvidence(myEvidence));
        Console.WriteLine(("Count of evidence items = " 
            + myEvidence.get_Count()));

        Console.WriteLine("\nCopy the evidence to an array using
 CopyTo," 
            + " then display the array.");
        Object evidenceArray[] = new Object[myEvidence.get_Count()];
        myEvidence.CopyTo(evidenceArray, 0);
        for (int objCount = 0; objCount <
 evidenceArray.length; objCount++) {
            Object obj = evidenceArray[objCount];
            Console.WriteLine(obj.ToString());
        }

        Console.WriteLine("\nDisplay the contents of the properties.");
        Console.WriteLine("Locked is the only property normally used by code.");
        Console.WriteLine("IsReadOnly, IsSynchronized, and SyncRoot " 
            + " properties are not normally used.");

        Console.WriteLine(("\nThe default value for
 the Locked property = " 
            + System.Convert.ToString(myEvidence.get_Locked())));

        Console.WriteLine("\nGet the hashcode for the evidence.");
        Console.WriteLine(("HashCode = " + myEvidence.GetHashCode()));

        Console.WriteLine("\nGet the type for the evidence.");
        Console.WriteLine(("Type = " + myEvidence.GetType().ToString()));

        Console.WriteLine("\nMerge new evidence with the
 current evidence.");
        Object oa1[] = null;
        Site site = new Site("www.wideworldimporters.com");
        Object oa2[] =  { url, site };
        Evidence newEvidence = new Evidence(oa1, oa2);
        myEvidence.Merge(newEvidence);
        Console.WriteLine(("Evidence count = " + PrintEvidence(myEvidence)));

        Console.WriteLine("\nRemove URL evidence.");
        myEvidence.RemoveType(url.GetType());
        Console.WriteLine(("Evidence count is now: " + myEvidence.get_Count()));

        Console.WriteLine("\nMake a copy of the current evidence.");
        Evidence evidenceCopy = new Evidence(myEvidence);
        Console.WriteLine(("Count of new evidence items =
 " 
            + evidenceCopy.get_Count()));
        Console.WriteLine(("Does the copy equal the current evidence? "
 
            + System.Convert.ToString(myEvidence.Equals(evidenceCopy))));

        Console.WriteLine("\nClear the current evidence.");
        myEvidence.Clear();
        Console.WriteLine(("Count is now " + myEvidence.get_Count()));
        return myEvidence;
    } //DemonstrateEvidenceMembers

    public static int PrintEvidence(Evidence
 myEvidence)
    {
        int p = 0;
        Console.WriteLine("\nCurrent evidence = ");
        if (null == myEvidence) {
            return 0;
        }
        IEnumerator list = myEvidence.GetEnumerator();

        while (list.MoveNext()) {
            Console.WriteLine(String.valueOf(list.get_Current()));
        }
        Console.WriteLine("\n");
        return p;
    } //PrintEvidence

    public static System.Byte[] HexsToArray(String
 sHexString)
    {
        Byte array[] = new Byte[sHexString.get_Length() / 2];
        for (int i = 0; i < sHexString.get_Length();
 i += 2) {
            array[i / 2] = (Byte)Byte.Parse(sHexString.Substring(i, 2), 
                NumberStyles.HexNumber);
        }
        return array;
    } //HexsToArray

    public static void main(String[]
 args)
    {
        try {
            EvidenceExample EvidenceTest = new EvidenceExample();
            boolean ret = EvidenceTest.CreateEvidence();
            if (ret) {
                Console.WriteLine("Evidence successfully created.");
            }
            else {
                Console.WriteLine("Evidence creation failed.");
            }
            EvidenceTest.DemonstrateEvidenceMembers();
        }
        catch (System.Exception e) {
            Console.WriteLine(e.ToString());
            Environment.set_ExitCode(101);
        }
    } //main
} //EvidenceExample
継承階層継承階層
System.Object
  System.Security.Policy.Evidence
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Evidence クラス」の関連用語

Evidence クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Evidence クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS