日期:2011-09-01  浏览次数:20580 次

 使用 ASP.NET 来承载多个 Web 站点的一个主要优点是:公共语言运行库支持代码访问安全,可帮助保护服务器应用程序的安全。根据关于代码来源的证据(例如带有强名称的程序集或源的 URL 等证据),代码被分配到安全区域分类中。如果不能为安装在公共服务器上的各个互不相关的应用程序配置安全机制,那么 ASP.NET 页中属于一个应用程序的代码将能够读取另一个应用程序中的文件(例如 Web.config 文件)。以完全信任方式运行的应用程序只受操作系统帐户的限制,这些应用程序在该帐户下执行。

通过对程序集进行强命名并为该程序集添加策略,可以方便地为个别程序集处理代码访问安全性。但是,作为动态页编译的结果,将动态生成许多 ASP.NET 程序集,因此这些程序集未进行强命名,所以需要附加功能。

ASP.NET 允许您向应用程序分配对应于一组预定义权限的可配置信任级别。默认情况下(除非显式更改配置),应用程序将接收到与它们提供的证据相称的信任级别。例如,本地应用程序必须在 MyComputer 区域中使用 Full 信任权限集运行,位于通用命名规则 (UNC) 共享上的应用程序必须在 Intranet 区域中使用 LocalIntranet 限制权限集运行。如果要使用低于 Full 信任的级别运行 Web 应用程序,则您必须使用 ASP.NET 信任级别和策略文件中定义的某个预定义信任级别来实施部分信任策略。

您可以使用以下配置设置重写默认行为并将应用程序和给定的安全策略关联起来。

      

<location path="MyApp" allowOverride="false"><trust level="High"originUrl="http://www.contoso.com"/></location>

<trust> 配置标记可应用于计算机级别或层次结构中的任何应用程序根目录。

如果要为整个站点设置策略,您可以通过将站点的根目录指定为路径位置完成该操作,如下所示。

<location path="ContosoSite" allowOverride="false"><trust level="High"originUrl="http://www.contoso.com"/></location>

如果不想让应用程序能够指定它们自己的信任级别(多数共享服务器安装中是这种情况),则在使用 allowOverride 属性指定 <location> 指令时应小心。

下表列出了 <trust> 元素默认支持的属性。

属性说明默认支持的值
level指定应用程序将在其中运行的安全区域。Full、High、Medium、Low 和 Minimal。
originUrl允许管理员设置应用程序的源的 URL。

这允许依赖于宿主概念的权限正常工作

格式正确的 HTTP URL。

默认情况下,向与不同的安全级别关联的策略授予的权限显示在下表中。

友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:523人  网站在1分11秒内访问总人数:523人 当前 57.87%  粤ICP备18100884号-2
   级别
权限完全最小
AspNetHostingPermission完全最小
EnvironmentUnUn读:TEMP、TMP、OS、USERNAME、COMPUTERNAME      
FileIOUnUn读、写、追加、路径发现:应用程序目录读、路径发现:应用程序目录   
IsolatedStorageUnUnAssemblyIsolationByUser、不受限制的用户配额1 MB 配额(对于个别站点可能有所变化)、AssemblyIsolationByUser   
ReflectionUnReflectionEmit         
RegistryUn            
SecurityUn执行、断言、控制主体、控制线程、远程处理配置执行、断言、控制主体、控制线程、远程处理配置执行执行