У меня есть страница приложения, которую я создаю в SharePoint для размещения в каталоге LAYOUTS. Страница наследуется от LayoutsPageBase и не имеет другого кода прямо сейчас. ASPX-файл настроен на наследование от этого класса / сборки. Довольно просто.
Моя проблема заключается в том, что я хочу развернуть свою сборку в каталоге BIN приложения (не в GAC) и использовать политику разрешений CAS, чтобы разрешить ее выполнение в SharePoint. Однако в этот момент, всякий раз, когда я развертываю страницу, я получаю следующее исключение:
Запрос не выполнен. в System.Reflection.Assembly._GetType (имя строки, логическое значение throwOnError, логическое значение ignoreCase)
at System.Web.UI.TemplateParser.GetType (String typeName, Boolean ignoreCase, Boolean throwOnError)
в System.Web.UI.TemplateParser.ProcessInheritsAttribute (String baseTypeName, String codeFileBaseTypeName, String src, Сборка сборки)
в System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes (IDictionary parseData)
Во всех других случаях, когда я получал ошибки разрешений, исключение указывало, какое именно разрешение я пропустил (например, SqlClientPermission или FileIOPermission).
Я знаю, что проблема связана с CAS, так как она прекрасно работает, когда я внедряю в GAC.
Мои текущие разрешения CAS выглядят так:
<PermissionSet class="NamedPermissionSet" version="1" Name="MyPermissionSet">
<IPermission class="AspNetHostingPermission" version="1" Level="Minimal" />
<IPermission class="SecurityPermission" version="1" Flags="Execution, SkipVerification, UnmanagedCode, ControlEvidence" />
<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" Unrestricted="True" ObjectModel="true" />
<IPermission class="System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Data.OracleClient.OraclePermission, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
</PermissionSet>
В настоящее время я думаю, что это связано с классом LayoutsPageBase, поскольку страница прекрасно работает с моей политикой CAS, когда я изменяю ее для наследования от базового System.Web.UI.Page.
Я использовал инструмент permcalc, доступный от Microsoft, в своей сборке и добавил обнаруженные разрешения, но проблема не была решена.
Итак, мой скучный вопрос заключается в следующем: кто-нибудь когда-либо развертывал страницы приложений, которые наследуются от LayoutsPageBase SharePoint с использованием политик CAS, и какие разрешения нужно было указать в своей политике CAS, чтобы заставить ее работать?