在 bin 目录中存储的 ASP.NET Web 部件具有特殊的安全约束。可以根据计划使用 Web 部件的方式,选择是否设置筛选器 Web 部件的特殊安全属性。
bin 目录是部分信任位置,因此您的 Web 部件在执行时不会自动授予完全信任代码权限。由于调用到 Web 部件中的代码将只授予部分信任权限,因此您的 ASP.NET Web 部件需要设置 AllowPartialTrustedCallers 属性。您可以在程序集级别设置该属性。
警告
将程序集标记为对 AllowPartiallyTrustedCallers 是安全的会使开发人员承担很大的安全实施责任。
另一个问题是默认情况下,bin 目录的代码访问安全权限很低;只允许纯执行。您几乎必须要提升这些权限,才能使程序集正确运行。
有以下两种方法可以提升权限:
在 Web 应用程序根目录的 web.config 文件夹中,您将看到一个名为 <trust level> 的标记,并具有 level="WSS_Minimal" 属性。可以将该级别更改为“WSS_Medium”。这样可以提升 bin 目录的信任级别。这种方法比较简单;但是,由于此方法一般性地提升了信任级别,所以会授予您可能不需要的任何新权限,这样就不如另一种创建新信任策略文件的方法安全。
创建一个新的信任策略文件,将 web.config 文件指向该新文件。这种方法较为复杂,但是可以更为精确地设置 Web 部件的权限属性。
先决条件
由于此示例只用于演示,因此此步骤提升了 bin 目录的信任级别。请注意这种方法安全性较低。
警告
提升 bin 目录信任级别的方法的安全性低于创建新的信任策略文件,并将 web.config 文件指向该新文件。
提升 bin 目录的信任级别
在应用程序根目录中找到 web.config 文件,打开进行编辑。
找到信任级别标记 <trust level="WSS_Minimal">。将信任级别更改为 WSS_Medium。