2010-05-04 2 views
1

Я ищу способ автоматизации развертывания пользовательской политики CAS в SharePoint.Sharepoint: Возможно ли автоматизировать развертывание пользовательской политики CAS?

Что я хотел бы достичь заключается в следующем:

Все узлы, которые были построены и подписанные нашей сборки сервера (с секретным ключом) должен работать в SharePoint под «выше нормального» уровня доверия.

Теперь можно вручную редактировать файлы саз политики включить что-то вроде этого:

 <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="MyPermissionSet" Name="[My Company public key]" Description="Grants all "> 
      <IMembershipCondition class="StrongNameMembershipCondition" version="1" PublicKeyBlob="[public key goes here]" /> 
     </CodeGroup> 

И это прекрасно работает. Тем не менее, у нас есть несколько огромных ферм sharepoint, на которых работает множество приложений. Я хотел бы избежать необходимости вручную редактировать все файлы политики, чтобы включить этот фрагмент xml.

Есть ли способ автоматизировать это? Например, из функции?

С наилучшими пожеланиями, Эрвин ван дер Валк

ответ

1

Надеюсь, вы знакомы с WSP-файлов. Это стандартный способ развертывания чего-либо в ферме. Вы также можете развернуть записи политики CAS, используя файл wsp. (Возможно, вам захочется создать файл wsp только для вашей политики cas). Файлы wsp такие же, как и файлы кабины, только что переименованные. Внутри wsp-файла находится файл manifest.xml, в котором вы можете определить, какие изменения в файле CAS вы хотите применить. Самое замечательное в том, чтобы сделать это так, чтобы его можно было отключить, деинсталлировав WSP. Я видел несколько различных подходов к развертыванию политик CAS, включая наличие вашего пользовательского файла политики как части вашего wsp, и он развертывается так же, как и любой другой файл.

Вы должны использовать google wsp cas policy manifest.xml для дальнейших учебных пособий.

Надеется, что это помогает ..

1

Это то, что я сделал, чтобы автоматизировать развертывание политика CAS моей WebPart:

Внутри моего файл .wsp, у меня есть Manifest.xml файл с этим содержимым:

<?xml version="1.0" encoding="utf-8" ?> 
<Solution SolutionId="0C006FE3-919D-4a2a-9CF0-FEA66A0A91E4" xmlns="http://schemas.microsoft.com/sharepoint/" > 
    <Assemblies> 
     <Assembly Location="MyWebPart.dll" DeploymentTarget="WebApplication"> 
      <ClassResources> 
       <ClassResource Location="MyWebpart_log.config" /> 
       <ClassResource Location="combo.css" /> 
       <ClassResource Location="combo.js" /> 
       <ClassResource Location="img/arrow.png" /> 
       <ClassResource Location="img/coordination.gif" /> 
       <ClassResource Location="img/dt-arrow-dn.png" /> 
       <ClassResource Location="img/dt-arrow-up.png" /> 
       <ClassResource Location="img/loading.gif" /> 
       <ClassResource Location="img/menu-button-arrow.png" /> 
       <ClassResource Location="img/spinner.gif" /> 
       <ClassResource Location="img/split-button-arrow.png" /> 
       <ClassResource Location="img/sprite.png" /> 
      </ClassResources> 
      <SafeControls> 
       <SafeControl Assembly="MyWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=017e953639e07a31" 
          Namespace="MyWebPart" TypeName="*" Safe="True" /> 
      </SafeControls> 
     </Assembly> 
     <Assembly Location="log4net.dll" DeploymentTarget="WebApplication"> 
      <SafeControls> 
       <SafeControl Assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" 
          Namespace="MyWebPart" TypeName="*" Safe="True" /> 
      </SafeControls> 
     </Assembly> 
    </Assemblies> 
    <CodeAccessSecurity> 
     <PolicyItem> 
      <PermissionSet class="NamedPermissionSet" version="1" Name="MyWebPartPermissionSet" 
          Description="Permission set for My Web Part"> 
       <IPermission class="AspNetHostingPermission" version="1" Level="Medium" /> 
       <IPermission class="System.Net.DnsPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          version="1" Unrestricted="true" /> 
       <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
         version="1" Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$" /> 
       <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
        version="1" 
        Flags="Execution" /> 
       <IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" /> 
       <IPermission class="Microsoft.SharePoint.Security.WebPartPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
          version="1" Connections="True" /> 
       <IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          version="1"> 
        <ConnectAccess> 
         <URI uri=".*"/> 
        </ConnectAccess> 
       </IPermission> 
      </PermissionSet> 
      <Assemblies> 
       <Assembly Name="MyWebPart" /> 
      </Assemblies> 
     </PolicyItem> 
     <PolicyItem> 
      <PermissionSet class="NamedPermissionSet" version="1" Name="Log4NetForMyWebPart" 
          Description="Permission set for Log4Net (logging library used by the My Web Part"> 
       <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Execution" /> 
       <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
         version="1" Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$" /> 
      </PermissionSet> 
      <Assemblies> 
       <Assembly Name="log4net" /> 
      </Assemblies> 
     </PolicyItem> 
    </CodeAccessSecurity> 
</Solution> 

Вам придется копаться в документации MS для разрешений вам нужно, потому что мне потребовалось некоторое время, чтобы выяснить, какие из них мне нужно.

Файл .wsp был создан с помощью команды:

cabarc -r -p N ..\MyWebPart-1.0.0.wsp * 

(я скачал Cabarc с веб-сайта Microsoft, но я не помню точно где)

Чтобы развернуть Решение для веб-частей в SharePoint Я использую следующие команды:

cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\bin 

stsadm.exe -o addsolution -filename MyWebPart-1.0.0.wsp 

stsadm.exe -o deploysolution -name MyWebPart-1.0.0.wsp -immediate -allcontenturls -allowCasPolicies 

stsadm.exe -o execadmsvcjobs 

Все Параметр owCasPolicies необходим, потому что решение содержит политики CAS. Без этого они не будут добавлены в файл web.config SharePoint.

 Смежные вопросы

  • Нет связанных вопросов^_^