获取.NET应用程序的当前/活动安全区域?我有一个行为异常的应用程序,只是为了验证,我想看看它当前运行在哪个安全区。我找到了System.Security.SecurityZone枚举,但似乎找不到任何可以返回给我的东西我继续前进。有没有人有任何提示?基本上我想知道我的应用程序是否在MyComputer、Intranet、Internet、Untrusted、Trusted等上运行。编辑:这是我编写的用于查找此代码的辅助测试应用程序,感谢@blowdart。使用系统;使用System.Reflection;namespacezone_check{classProgram{staticvoidMain(string[]args){Console.WriteLine(".NETversion:"+Environment.Version);foreach(ObjectevinAssembly.GetExecutingAssembly().Evidence){if(evisSystem.Security.Policy.Zone){System.Security.Policy.Zonezone=(System.Security.Policy.Zone)ev;Console.WriteLine("安全区域:"+zone.SecurityZone);休息;}}}}}需要查看当前程序集的CAS证据;这个.GetType()。Assembly.EvidenceAssembly.Evidence是Evidence对象的一个??属性。您可以从中列举证据并找到显示为元素的区域。在.NET3.5中,您可以使用LINQ来简化您的代码:Zonez=a.Evidence.OfType().First();从.NET4.0开始,您可以使用方便的GetHostEvidence方法:Zonez=Assembly.GetExecutingAssembly().Evidence.GetHostEvidence();请注意,从.NET4.0开始,证据类派生自EvidenceBase基类。HTH,Gy?rgy您还可以使用Evidencee=Thread.CurrentThread.GetType().Assembly.Evidence;而不是分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——this.GetType().Assembly.Evidence本文收集自网络,不代表一个位置。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
