Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否获取.NET应用程序的当前/活动安全区域?_C#_.net_Security_Cas_Security Zone - Fatal编程技术网

C# 是否获取.NET应用程序的当前/活动安全区域?

C# 是否获取.NET应用程序的当前/活动安全区域?,c#,.net,security,cas,security-zone,C#,.net,Security,Cas,Security Zone,我有一个行为异常的应用程序,为了验证,我想看看它当前运行在哪个安全区域 我找到了System.Security.SecurityZone枚举,但似乎找不到任何将返回我正在运行的这些枚举的内容 有人有什么建议吗 基本上,我想知道我的应用程序是否在我的计算机、内部网、互联网、不可信、可信等环境中运行 编辑:这是我为查找此代码而编写的小测试应用程序,多亏了 您需要查看当前程序集的CAS证据 此.GetType().Assembly.Evidence 是一个属性对象。从这里,您可以查看并查找显示为元素

我有一个行为异常的应用程序,为了验证,我想看看它当前运行在哪个安全区域

我找到了System.Security.SecurityZone枚举,但似乎找不到任何将返回我正在运行的这些枚举的内容

有人有什么建议吗

基本上,我想知道我的应用程序是否在我的计算机、内部网、互联网、不可信、可信等环境中运行


编辑:这是我为查找此代码而编写的小测试应用程序,多亏了


您需要查看当前程序集的CAS证据

此.GetType().Assembly.Evidence

是一个属性对象。从这里,您可以查看并查找显示为元素的区域。

您也可以使用

Evidence e = Thread.CurrentThread.GetType().Assembly.Evidence;
而不是

this.GetType().Assembly.Evidence

在.NET 3.5中,您可以使用LINQ简化代码:

Zone z = a.Evidence.OfType<Zone>().First();
请注意,从.NET 4.0证据类派生自
证据库
基类

嗯,,
很好,谢谢,我将最后的代码粘贴在这里,以备将来参考。欢迎您。当然,在现实生活中,您不必这样做,您将提出CAS要求并相应地采取行动:)
Thread.CurrentThread.GetType()
返回与
typeof(Thread)
相同的
Type
实例,因此您正在检索
Thread
类的程序集(
mscorlib
)的证据,不是开发人员的程序集。
Zone z = a.Evidence.OfType<Zone>().First();
Zone z = Assembly.GetExecutingAssembly().Evidence.GetHostEvidence<Zone>();