0

假设有一个.NET 类库代码,例如,写入 Windows 注册表。然后这段代码在互联网上运行有问题,因为默认的互联网策略不允许写入注册表。

通过在程序集中添加一条RequestMinimum语句,我们可以指定代码需要写入权限才能写入注册表。这不会改变代码没有权限的事实,但会阻止程序集加载;运行时将抛出一个System.Security.Policy.PolicyException并识别所需的权限。

您现在是否还有其他使用证据安全策略权限代码访问安全性的关键元素)来防止程序集加载到 Web 服务器上的示例?

4

1 回答 1

1

如果您拒绝 SecurityPermission\Execution,您可以阻止任何程序集在任何上下文(Web 服务器或其他)中加载。在 .NET 3.5 和更早版本中,ASP.NET 信任级别与计算机上的本地 CAS 策略相交,以确定任何给定程序集的最终权限授予。因此,您可以使用通常的证据和代码组成员条件机制,通过本地 CAS 策略拒绝程序集的执行权限,从而防止程序集在 ASP.NET 下加载。(这在 .NET 4.0 中不成立,本地 CAS 策略将不再存在。)

于 2010-03-11T13:15:52.343 回答