【问题标题】:SSRS Custom Assembly Doesn't Recieve Full TrustSSRS 自定义程序集未获得完全信任
【发布时间】:2020-01-27 00:11:55
【问题描述】:

我正在尝试将自定义程序集添加到 SSRS SharePoint 集成报告服务中。但是,自定义 dll 仍以部分受信任的形式返回。

我已经进入 rssrvpolicy.config 文件并添加了一个使用 UrlMembershipCondition 证据的代码组,并将其指向 DLL 所在的报告 Bin,PermissionSetName="FullTrust",并且 DLL 存储在 C :\Program Files\Common files\microsoft shared\Web Server Extensions\16\WebServices\Reporting\bin

然后我尝试将 DLL 添加到 GAC,但这也返回了与仅被部分信任相同的错误。

出现此错误的原因是因为我正在尝试使用完全受信任的 DLL(在 GAC 中)来执行日志记录。 gac 中的日志记录 DLL 似乎是受信任的,所以我不明白为什么这个 DLL 在 GAC 中或被明确告知受信任时不受信任。

我正在使用 .Net 4.6,我知道它对 CAS 系统进行了一些更改。

【问题讨论】:

    标签: c# reporting-services .net-4.6 sharepoint-2016


    【解决方案1】:

    我终于能够解决这个问题。在这种情况下,我的解决方案是使用 3.0 样式的 CAS 或级别 1 (Microsoft Docs)。我不知道这是否是最好的解决方案,但它是一个可行的解决方案。

    第 1 步: 在每个 .cs 文件顶部的项目中,确保通过使用以下属性指定您要使用 1 级安全规则集:

    [assembly: SecurityRules(SecurityRuleSet.Level1)]
    

    这个属性应该在你的 using 语句之下,但在这个例子的命名空间关键字之上。

    using Microsoft.SharePoint.Client;
    
    [assembly: SecurityRules(SecurityRuleSet.Level1)]
    
    namespace something.something{
       ...YOUR CODE HERE...
    }
    

    第 2 步: 了解您是在 SharePoint 集成模式还是本机模式下使用报告服务。

    如果您使用的是 SharePoint 2016 集成模式,请导航到以下位置并将您的 DLL 复制到该文件夹​​中。

    C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\WebServices\Reporting\bin
    

    如果您使用的是本机模式,请导航到以下位置并将其复制到文件夹中。

    C:\Program Files\Microsoft SQL Server
    

    然后遍历每个编号的文件夹(IE 90,100,130 等),直到找到 Bin 文件夹。

    我建议将您的自定义程序集放置在这里,而不是 GAC,因为很容易通过 Reporting Services Web 配置授予完全信任。

    第 3 步: 最后从 bin 文件夹返回上一层,您可以看到报告服务的 web.config 文件。在报告服务中找到以下标签

    <trust level="something" originUrl\""/>
    

    用完全替换关卡

    <trust level="Full" originUrl\""/>
    

    注意:据我所知,这样做会使 Bin 文件夹中的所有 DLL 以完全信任方式运行

    执行 IISReset 并测试我们的自定义程序集。您应该能够完全信任并避免任何可怕的 .Net 4.0 透明代码问题。


    我不能保证这对所有人都有效。整个 .Net 4.6 CAS 设置非常复杂且难以理解。以下是帮助我找到此答案的 Microsoft Docs 列表。

    System.Security Critical Attribute

    Check for full trust in code

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      • 2023-03-12
      • 2018-03-05
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多