我一直想在这里发帖一段时间,但总能找到我需要的信息;当然,直到现在!感谢您提供的有关代码访问安全性的任何帮助,特别是网络共享上的dll。
我正在寻找一种在运行时动态加载来自未知网络共享的反射,实例化和调用的组件的方法。
我搜索了论坛并了解到,从.NET 3.5 SP1开始,程序集将在完全信任的网络共享上执行。这似乎是针对.exe文件而不是.dll的。
我理解为什么会发生这种情况,代码信任是什么,以及CasPol和“.NET Framework 2.0配置”工具是如何工作的。我可以修改策略以获得对特定共享的测试环境的完全信任,但我不知道部署后的确切网络共享。
我无法利用任何内置的会员资格条件,例如强签名,网址,证书和什么不是。
据我所知,我可以通过实现IMembershipCondition接口并跳过几个环节来实现自定义条件类型。
基于以上信息,我想实现一个自定义成员资格条件(在C#中),但这似乎是一个相当复杂的任务,并且似乎没有太多信息来自Microsoft或t'internet 。目前我不明白你如何将“证据”放入一个集合中以便识别它,我也不理解在政策评估期间如何揭示这一证据以及如何以编程方式编写这个证据。
我想实现一个策略,该策略标识具有AssemblyCompany类型的程序集属性且值为“My Company”的所有程序集,即[assembly:AssemblyCompany(“My Company”)]。这不是我打算实现的,但它有助于我理解该机制的工作原理。
在处理此产品请求之前,我对代码安全性一无所知,正如您可以推断的那样,我一直在努力工作并尽可能多地找到关于该主题的信息,但我现在陷入困境。
您是否实施了自己的IMembershipCondition适配器?您是否有任何链接指向如何执行此操作的综合指南?你能提供一个有效的例子吗?
感谢您阅读我的(长篇)帖子,请帮助我! :d
答案 0 :(得分:2)
它称为CAS,代码访问安全性,它强制所有不受信任的网络驱动器被视为不受信任的网络代码。
本地代码具有完全信任,网络代码具有部分信任,互联网代码无信任。它是.Net唯一的安全模型。您可以选择将网络驱动器指定为“可信”驱动器,方法是为其提供完全权限(搜索caspol.exe fulltrust网络驱动器)或将.exe复制到本地驱动器。
此链接可以帮助您:https://julianscorner.com/wiki/programming/caspol_network_share
或CasPol.exe -m -pp off -ag 1.2 -url file:///// server / share / *命令行上的FullTrust。