代码之家  ›  专栏  ›  技术社区  ›  Robert Koritnik

无法将自定义DLL部署到Sharepoint网站

  •  1
  • Robert Koritnik  · 技术社区  · 14 年前

    我已将模块添加到sharepoint网站的 web.config/system.webServer/modules 部分。

    然后我还将我的DLL直接复制到 bin 文件夹,因为这是SualASP.net应用程序的工作方式。我有个关于失败的例外 AspNetHostingPermission .

    我复制了相同的DLL到 _app_bin 文件夹和它的工作。我的模块已经初始化并且正在运行。

    然后,我向模块类添加了两个权限:

    [AspNetHostingPermission(SecurityAction.LinkDemand,Level=AspNetHostingPermissionLevel.Minimal)]

    并将这两个添加到组件中

    [assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]
    [assembly: AllowPartiallyTrustedCallers]
    

    并用我创建的密钥对我的程序集进行了强签名。

    然后我把DLL复制回 箱子 _应用程序\u bin 工作。

    箱子 文件夹?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Per Jakobsen    14 年前

    您遇到的问题是,SharePoint正在使用代码访问安全性(CAS)来确保受过良好教育的管理员在向其添加功能时不会将环境置于不必要的风险中。

    应用程序bin中的所有内容都是以完全信任的方式运行的,这就解释了为什么你的dll在那里工作。

    bin中的所有内容运行时的信任度都大大降低,这取决于web.config中指定的信任级别(实际上,这也是指定app\u bin具有完全信任的级别,但这在所有现成的信任级别中都很常见)。

    WSPBuilder 要构建用于部署到SharePoint的WSP包(您使用的是WSP权限),它将查找安全属性并在manifest.xml中生成相应的条目,然后让SharePoint在部署时将相应的条目添加到策略文件中。

    为了让属性与WSPBuilder一起工作,我认为它们必须更改为SecurityAction.Demand。