本文整理汇总了C#中System.Security.Policy.Evidence类的典型用法代码示例。如果您正苦于以下问题:C# Evidence类的具体用法?C# Evidence怎么用?C# Evidence使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Evidence类属于System.Security.Policy命名空间,在下文中一共展示了Evidence类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: CreateEvidence
//引入命名空间
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;
}
}
}
开发者ID:.NET开发者,项目名称:System.Security.Policy,代码行数:173,代码来源:Evidence
注:本文中的System.Security.Policy.Evidence类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论