Я написал две функции в SharePoint 2007.
Один из них находится на уровне сайта и в основном добавляет веб-часть в семейство сайтов, где он активируется. Эта сборка компонентов развернута в каталоге 'bin'.
Второй - это область действия фермы, которая является моим пользовательским SPPersistedObject и развернута в центре администрирования. Сборка добавлена в GAC.
Из веб-части мне нужно обновить свой пользовательский объект. Это работает нормально в большинстве случаев. Но на некоторых серверах, которые используют учетные записи домена администрирования с наименьшими привилегиями
http://technet.microsoft.com/en-us/library/cc263445.aspx' Я получаю сообщение об ошибке ниже
System.Security.SecurityException:
Доступ закрыт. в
Microsoft.SharePoint.Administration.SPPersistedObject.Update ()
на MyWebPart. <> c__DisplayClass1.b__0 ()
в
Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper (Объект
состояние) в
Microsoft.SharePoint.SPSecurity. <> C__DisplayClass4.b__2 ()
в
Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess (CodeToRunElevated
secureCode) в
Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges (WaitCallback
secureCode, Object param) в
Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges (CodeToRunElevated
secureCode) в
MyWebPart.RenderWebPart (HtmlTextWriter
писатель) Зона собрания, которое
не удалось: MyComputer
Нужно ли устанавливать какие-либо разрешения или политики CAS для предотвращения этой ошибки?
Ниже приведен мой текущий набор политик CAS для сборки веб-части. Нужно ли мне вносить какие-либо изменения здесь.
<CodeAccessSecurity>
<PolicyItem>
<PermissionSet class="NamedPermissionSet" version="1" Name="MyPermission" Description="Permission set for my solution">
<IPermission class="System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Level="Medium" />
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="AllFlags" />
<IPermission class="Microsoft.SharePoint.Security.WebPartPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" Connections="true" />
<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="true" UnsafeSaveOnGet="true" Impersonate="true"/>
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true">
<ConnectAccess>
<URI uri="$OriginHost$"/>
<URI uri="http://.*\.xyz\.com/.*"/>
</ConnectAccess>
</IPermission>
</PermissionSet>
<Assemblies>
<Assembly Name="MyWebPart" Version="1.0.0.0" PublicKeyBlob="0024000004800000940000000602000000240000525341310004000001000100df0e85cb8c660241cd3225eb653a590b91303ddbd37f8f1e661d2dffb840a258b899d6bacbbc55d03768d5ea0260ee4c8341fd447d7200abdb74b837733c3f756833e169cae803aef808530dd3ddad953a49492faee3eeba6f0dba66b0d66f1f9ca5266c69dcb799ed364db5e9e6ebcd4e81fb27365de962cbe6e7e7fba300dc"/>
</Assemblies>
</PolicyItem>
</CodeAccessSecurity>
Пожалуйста, совет.
С уважением,
Джаганнатха