WSPBuilder, Config Store и частично доверенные вызывающие абоненты
-
13-09-2019 - |
Вопрос
Кто-нибудь использовал WSP Builder для упаковки решения, использующего хранилище конфигураций? (http://www.codeplex.com/SPConfigStore) и развертывается в каталоге bin веб-приложения?
Когда я пытаюсь сослаться на хранилище конфигураций в файле кода, я получаю это исключение...
System.Security.SecurityException:Эта сборка не позволяет вызывающим абонентам с частичным доверием.
Я добавил в свой проект атрибут частично доверенных абонентов.
[assembly: AllowPartiallyTrustedCallers()]
и атрибуты разрешений SharePoint для моих методов
[SharePointPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Impersonate = true)]
[SharePointPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, ObjectModel = true)]
Но, похоже, это ничего не дало, я также указал специальную политику CAS с правильным IPermission.
<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" UnsafeSaveOnGet="True" Unrestricted="True" />
И все равно безуспешно, наверняка это делали другие люди, должно быть, я что-то упускаю
Я использую WSP Builder версии 1.0.5.
Решение
Вы добавили [сборку:AllowPartiallyTrustedCallers()] в ВАШУ сборку, поэтому ваша сборка БУДЕТ позволять частично доверенным вызывающим абонентам вызывать ее.Но сам ConfigStore не имеет этого атрибута.
Можно ли добавить свою DLL в GAC?(легкий путь).Или добавьте [сборку:AllowPartiallyTrustedCallers()] также в проект ConfigStore.
Другие советы
Вы добавили сборку в раздел SafeControls web.config?
<SafeControl Assembly="Microsoft.Office.Server.Search, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.Search.WebControls" TypeName="*" Safe="True" />
Также вам может потребоваться снизить уровень доверия в файле web.config:
<trust level="WSS_Minimal" originUrl="" />
См. документацию MSDN для Уровни доверия ASP.Net и SharePoint.