• Web.Config中的trust元素


    这个元素配置应用在一个application上的code access security(CAS)的等级. 如果你想让web application运行在低于Full trust的时候, 使用这个元素.

    语法:

    <trust level="[Full|High|Medium|Low|Minimal]" originUrl="URL" processRequestInApplicationTrust = "[True|False]" />

    属性和元素

    =============

    • level: 这个属性指定了应用程序运行所处的trust level. 任何一个trust level都被映射到一个单独的XML pllicy文件, 映射方式是通过web.config文件中的trustLevel元素. Policy文件列出了该trust level所赋予应用程序的权限集. 更多信息, 请参考securityPolicy Element (ASP.NET Settings Schema)元素, 或者是下面的可能的值, 下面的值按照限制程度增加的顺序排列.
      • Full 指定了不受限的权限. 赋予ASP.NET应用程序权限来访问任何的受操作系统安全制约的资源. 所有的特权操作都被支持. 这个配置的名字在AspNetHostingPermissionLevel的枚举类型中叫做Unrestricted.
      • High 指定了高水平的code access security, 它意味着应用程序默认不能做下列的事情:
        • 调用非托管代码
        • 调用服务组件
        • 写event log
        • 访问Microsoft Message Queuing的队列
        • 访问ODBC, OleDb, 或 Oracle数据源
      • Medium 指定了一个中等水平的code access security, 它意味着, 除了High的限制之外, ASP.NET应用程序默认还不能做下面的事情:
        • 访问应用程序目录之外的文件
        • 访问注册表
        • 进行网络或者是web services的调用(比如说使用System.Net..::.HttpWebRequest类)
      • Low 指定了低水平的code access security, 它意味着, 除了Medium的限制之外, 默认它还不能做:
        • 向文件系统写入信息
        • 调用Assert方法
      • Minimal 指明了最低水平的code access security, 它意味着应用程序只有执行的权限.
    • originUrl: 是一个可选的字符串属性. 它指定了一个使用受限制的WebPermission权限访问的URL, 这里所说的受限制的WebPermission权限就是配置的Medium trust. 如果这个选项出现, 这就可以被应用到某些类上, 比如说HttpWebRequest, 来允许被WebPermission指定的到特定URLs上的连接. 这允许了主机上依赖于这个概念的权限正常地工作.
    • processRequestInApplicationTrust: 可选的布尔值属性. 指定了是否页面请求会自动地受限于应用在ASP.NET应用程序上的trust policy文件上配置好的权限. trust policy文件是在securityPolicy元素中的trustLevel属性中指定的. 使用trust元素的level属性, 一个单独的trust policy可以被应用到ASP.NET应用程序上. 如果这个值被设置为false, 即使level属性被设置为了另外的trust level, ASP.NET请求也能够潜在地在Full trust下执行. 除非有特别的原因这么做, 不要修改默认值true.

    Remarks

    ==============

    trust元素能够配置应用到一个应用程序上的code access security(CAS)的水平. Security Policy文件被映射到securityPolicy 集合元素中的trust level名字上. policy文件列表列出了通过trust level赋予的权限集. trust元素指定了ASP.NET应用程序应用哪一个水平的trust. 更多信息请参考ASP.NET Trust Levels and Policy Files.

    默认情况下, web应用程序运行在full trust之下. Full-trust的应用程序被code access security policy赋予不受限制的code access permission. 这些permission包括built-in的系统权限以及自定义权限. 这意味着code access security不会阻止你的应用程序访问任何安全的资源. 对资源的访问动作是成功还是失败纯粹地取决于系统级的安全(system-level security). 如果一个应用程序被配置为非full trust, 那么它就被partial-trust application. Partial-trust应用程序有受限的权限, 为了应用程序而去访问安全资源会受到限制.

    了为在宿主环境中提高安全, 你应该在root web.config文件中使用location元素来包括主securityPolicy和trust两个元素, 并且设定allowOverride="False"来阻止应用程序在更加具体的web.config文件中覆盖掉这个设置. 如果你想要为不同的宿主应用程序配置不同的trust level的话, 你还可以选择使用多重location元素, 每一个都有一个不同的path属性.

    一下的代码段摘自SharePoint Portal Server 2003中一个站点的web.config文件. SharePoint应用了这种技术.

    <system.web>
      <securityPolicy>
        <trustLevel name="WSS_Medium" policyFile="C:\Prog~\Com~ Files\...\60\config\wss_mediumtrust.config" />
        <trustLevel name="WSS_Minimal" policyFile="C:\Prog~\Com~ Files\...\60\config\wss_minimaltrust.config" />
      </securityPolicy>
      <trust level="WSS_Minimal" originUrl="" />
    </system.web>

    摘译自:

    trust Element (ASP.NET Settings Schema)

    http://msdn.microsoft.com/en-us/library/tkscy493.aspx

  • 相关阅读:
    写页面得来的体会
    C#&java重学笔记(面向对象)
    C#&java重学笔记(函数)
    C#&java重学笔记(变量与操作符)
    深入JS第一天:原型和它的小伙伴们(一)
    兼容性积累
    再深入一点ajax
    Android之内存泄漏调试学习与总结
    优雅地实现Android主流图片加载框架封装,可无侵入切换框架
    优雅地实现Android主流图片加载框架封装,可无侵入切换框架
  • 原文地址:https://www.cnblogs.com/awpatp/p/1665122.html
Copyright © 2020-2023  润新知