Пользовательская сборка SSRS не получает полного доверия - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь добавить пользовательскую сборку в службу отчетов SSRS SharePoint Integrated.Как бы то ни было, пользовательская библиотека DLL возвращается только как частичное доверенное.

Я уже вошел в файл rssrvpolicy.config и добавил группу кода, которая использует свидетельство UrlMembershipCondition, и указал ее на корзину отчетов, где находится DLL,с PermissionSetName = "FullTrust", а DLL хранится в C: \ Program Files \ Common files \ microsoft shared \ Расширения веб-сервера \ 16 \ WebServices \ Reporting \ bin

Затем я попытался добавить DLLв GAC, но это также дало ту же ошибку, возвращающуюся как только частично доверенную.

Причина, по которой эта ошибка появляется, заключается в том, что я пытаюсь использовать полностью доверенную DLL (в GAC), котораявыполняет регистрациюПохоже, что DLL-библиотека журналов в gac является доверенной, поэтому я не понимаю, почему эта DLL-библиотека не является доверенной, когда в GAC или когда ей явно сказано, что ей нужно доверять.

Я использую .Net 4.6, которую я знаюпроизошли некоторые изменения в системе CAS.

1 Ответ

0 голосов
/ 27 сентября 2019

Я наконец-то смог разобраться с проблемой.Моим решением в этом случае было использование CAS стиля 3.0 или уровня 1 ( Microsoft Docs ).Я не знаю, является ли это лучшим решением, но это рабочее решение.

Шаг 1. В вашем проекте в верхней части каждого файла .cs обязательно укажите, что вы хотите использовать правило безопасности уровня 1.установить с помощью следующего атрибута:

[assembly: SecurityRules(SecurityRuleSet.Level1)]

Этот атрибут должен идти ниже ваших операторов использования, но выше ключевого слова пространства имен, как в этом примере.

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.

Шаг 3. Наконец, вернитесь на один уровень вверх из папки bin, где вы видите файл web.config для служб отчетов.В службах отчетов найдите следующий тег

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

Замените что-то на уровень Full

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

ПРИМЕЧАНИЕ. При этом будут созданы все библиотеки DLL, находящиеся в папке Bin.насколько я могу судить, запустите с полным доверием

Выполните сброс IIS и протестируйте нашу собственную сборку.Вы должны иметь полное доверие и избегать любых ужасных проблем с прозрачным кодом .Net 4.0.


Я не могу гарантировать, что это будет работать для всех.Вся эта установка .Net 4.6 CAS очень сложна и трудна для понимания.Ниже приведен список документов Microsoft, которые помогли мне найти этот ответ.

Критический атрибут System.Security

Проверьте полное доверие к коду

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...