Я создал настраиваемых поставщиков членства и ролей для веб-приложения SharePoint.
Если я разверну DLL для этих классов в GAC, положение о членстве / роли будет работать нормально. Если я развертываю эти библиотеки DLL в папке bin веб-приложения в IIS, веб-приложение сразу выдает ошибку сервера при переходе на сайт.
Сообщение об ошибке парсера: исключение было выброшено целью вызова.
Если я просматриваю источник на странице ошибки, я получаю немного больше информации:
[ConfigurationErrorsException]: исключение было создано целью вызова. (C: \ inetpub \ wwwroot \ wss \ VirtualDirectories \ theportal.com80 \ web.config, строка 119) в System.Web.Security.Roles.Initialize () в System.Web.Security.RoleManagerModule.OnLeave (источник объекта, EventArgs eventArgs ) в System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () в System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логическое значение и выполнено синхронно)
Строка, о которой идет речь:
<add name="PortalRoleProvider" applicationName="/"
type="Portal.Security.PortalRoleProvider,
Portal.Security, Version=1.1.0.0,
Culture=neutral,PublicKeyToken=5be544eaa65820dd"
/>
Это должно быть свойство разрешений, потому что, как я уже сказал, при развертывании в GAC ошибок не будет - и, кроме того, ошибок не будет, если я настрою web.config веб-приложения с полным доверием.
<trust level="full" />
Я добавил политики CAS (ну, WSPBuilder добавил их автоматически для меня). Однако они, похоже, не работают. Для библиотеки DLL, в которой находится поставщик ролей, они следующие:
<PermissionSet class="NamedPermissionSet" version="1" Description="WSPBuilder generated permissionSet" Name="portal.shareddllsinstaller.wsp-3a7ba544-2178-4505-a9d9-28622c565d07-1">
<IPermission class="AspNetHostingPermission" version="1" Level="Medium" />
<IPermission class="SecurityPermission" version="1" Flags="Assertion, Execution, ControlThread, ControlPrincipal, RemotingConfiguration" />
<IPermission class="SharePointPermission" version="1" ObjectModel="True" />
<IPermission class="EnvironmentPermission" version="1" Read="TEMP;TMP;USERNAME;OS;COMPUTERNAME" />
<IPermission class="PrintingPermission" version="1" Level="DefaultPrinting" />
<IPermission class="WebPartPermission" version="1" Connections="True" />
<IPermission class="FileIOPermission" version="1" Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$" />
<IPermission class="WebPermission" version="1">
<ConnectAccess>
<URI uri="$OriginHost$" />
</ConnectAccess>
</IPermission>
<IPermission class="IsolatedStorageFilePermission" version="1" Allowed="AssemblyIsolationByUser" UserQuota="9223372036854775807" />
<IPermission class="DnsPermission" version="1" Unrestricted="true" />
<IPermission class="SmtpPermission" version="1" Access="Connect" />
<IPermission class="SqlClientPermission" version="1" Unrestricted="true" />
</PermissionSet>
Есть идеи, как заставить этих настраиваемых поставщиков ролей / членства работать в каталоге bin? Что могло заставить их потерпеть неудачу?