2010-05-04 8 views
1

Je cherche un moyen d'automatiser le déploiement d'une politique CAS personnalisée dans SharePoint.Sharepoint: Est-il possible d'automatiser le déploiement d'une stratégie CAS personnalisée?

Ce que je voudrais obtenir est la suivante:

Tous les assemblées qui ont été construits et signés par notre serveur de build (avec une clé secrète) doit fonctionner dans SharePoint sous le « supérieur à la normale » niveau de confiance.

Maintenant, je peux modifier manuellement les fichiers de politique pour inclure quelque chose CAS comme ceci:

 <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> 

Et cela fonctionne très bien. Cependant, nous avons plusieurs fermes énormes de sharepoint, avec beaucoup d'applications fonctionnant dessus. Je souhaite éviter d'avoir à modifier manuellement tous les fichiers de règles pour inclure cet extrait XML.

Y at-il un moyen d'automatiser cela? Par exemple, à partir d'une fonctionnalité?

Cordialement, Erwin van der Valk

Répondre

1

espère que vous êtes familier avec les fichiers .wsp. C'est une manière standard de déployer n'importe quoi à la ferme. Vous pouvez également déployer des entrées de stratégie CAS à l'aide d'un fichier wsp. (Peut-être que vous voudrez créer un fichier wsp juste pour votre politique de cas). Les fichiers wsp sont les mêmes que les fichiers cab, juste renommés. A l'intérieur d'un fichier wsp, vous pouvez voir le fichier manifest.xml dans lequel vous pouvez définir les modifications apportées au fichier CAS que vous souhaitez appliquer. La bonne chose à faire de cette façon que c'est réversible en désinstallant le WSP. J'ai vu plusieurs approches différentes pour déployer des politiques CAS, y compris avoir votre fichier de politique personnalisé dans le cadre de votre wsp et il est déployé comme n'importe quel autre fichier.

Vous devriez google wsp cas policy manifest.xml pour d'autres tutoriels.

Hope this helps ..

1

C'est ce que je l'ai fait pour automatiser le déploiement des politiques de mon CAS webpart:

intérieur de mon .wsp fichier, j'ai un Manifest.xml fichier avec ce contenu:

<?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> 

vous devrez creuser dans la documentation de MS pour les autorisations dont vous avez besoin, car il m'a fallu un certain temps pour comprendre quels sont ceux que j'ai besoin.

Le .wsp fichier a été créé avec la commande:

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

(j'ai téléchargé cabarc sur le site Web de Microsoft, mais je ne me souviens pas exactement où)

Pour déployer la Solution Web Part dans SharePoint J'utilise ces commandes:

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 

Le tout Le paramètre owCasPolicies est nécessaire car la solution contient des stratégies CAS. Sans cela, ils ne seront pas ajoutés au fichier web.config de SharePoint.

Questions connexes