zoukankan      html  css  js  c++  java
  • SharePoint V3 中的 Code Access Security

    Code Access Security Schema长什么样?

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

    提供一个例子, 请注意黄色的高亮的部分.

    2-18-2010 1-30-34 PM

    Schema的规则

    1. 每一个Solution manifest中只能有一个CodeAccessSecurity 节点.
    2. PolicyItem节点可以有任意多个.
    3. 任何一个PolicyItem节点只能有一个PermissionSetAssemblies 节点.
    4. 每一个PermissionSet节点能够拥有任意数目的IPermission节点
    5. IPermission节点的Schema是由.NET framework定义的.
    6. 每一个Assemblies节点能够包含任意数目的Assembly节点.
    7. CodeAccessSecurity/PolicyItem/Assemblies/Assembly 节点与Solution/Assemblies/Assembly 节点不同..
    8. Assembly节点能够拥有下列的任意属性:
    • Name
    • Version
    • PublicKeyBlob

    添加和部署包含code access security policy的solution的命令

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

    Add: stsadm.exe -o addSolution -filename "InstallAssemblies_Solution_2052225630.cab"
    Deploy: stsadm.exe -o deploySolution -name "InstallAssemblies_Solution_2052225630.cab" -allcontenturls -local -force –allowCasPolicies

     

    注意, stsadm.exe会需要为包含contain CAS policy的Solution Package使用-allowCasPolicies标志位.

    一旦Solution被部署之后, trust file长什么样?

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

    2-18-2010 2-13-52 PM

    从manifest到trust file... 究竟发生了什么?

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

    1. PolicyItem中的PermissionSet是直接地插入到trust file中的(第一个高亮的部分). 在这个例子中, PermissionSet被命名为"installassemblies_solution_2052225630.cab-b172f003-d6c7-3e13-f737-a5d84a02e3e5-1". 这个名字是一个组合, 组成部分有installation package("installassemblies_solution_2052225630.cab") 加上SolutionID("b172f003-d6c7-3e13-f737-a5d84a02e3e5")加上PolicyItem index (在这个例子里只有一个PolicyItem).
    2. 在manifest中, 对于每一个与给定的PolicyItem关联的Assembly, 会创建一个CodeGroup(第二个黄色高亮的部分). 每一个CodeGroup都会引用在PolicyItem中的相关联的PermissionSet. 另外, 每一个CodeGroup都被插入到parent CodeGroup容器的第一个位置上. 这会确保FirstMatchCodeGroup 行为能够允许自定义的policies在默认的WSS Permission Set被应用之前得到应用.

    现在让我们看看CodeGroups是如何基于在manifest file中的数据被创建起来的

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

    正如刚才在schema规则部分提到的, Solution\CodeAccessSecurity\Assemblies\Assembly节点能够包含三个属性, Name, Version and PublicKeyBlob. 三个属性的组合可以确定class正在使用哪个membership.

    只有Name属性—> UrlMembershipCondition

    -------------------------

    当assemblies没有签名, 并且仅仅部署在BIN目录下的时候, 使用这种格式.

    2-18-2010 11-03-00 PM

    只有PublicKeyBlob属性—> StrongNameMembershipCondition

    ----------------------------------

    当你想要globally地应用一个policy到使用某个签名的所有程序集上的时候, 使用这种格式.

    2-18-2010 11-05-41 PM

    PublicKeyBlob + Name –> StrongNameMembershipCondition

    -------------------------------

    当你想要隔离一个policy到某一个特定的assembly上的时候, 你可以使用这种格式. Policy会应用到所有的版本上.

    2-18-2010 11-09-52 PM

    PublicKeyBlob + Name + Version --> StrongNameMembershipCondition

    -------------------------------

    当你想要隔离一个policy到一个特定的, 签名的, 某个版本的程序集上, 使用这种格式.

    2-18-2010 11-12-12 PM

    Code Access Security policies within SharePoint v3

    http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=249

  • 相关阅读:
    现存的数据库的解决方案的原理解析
    HTTP代理实现请求报文的拦截与篡改
    ucos软件结构
    微软官方Windows 8设计
    asp.net对CNMARC
    jQuery弹出层插件
    从"Hello World!"到面向对象
    git 的使用命令:克隆
    第一个C程序
    云计算平台简介(App Engine)
  • 原文地址:https://www.cnblogs.com/awpatp/p/1669269.html
Copyright © 2011-2022 走看看