2009-06-09 13 views
0

Est-ce que quelqu'un a utilisé WSP Builder pour empaqueter une solution qui utilise le magasin de configuration (http://www.codeplex.com/SPConfigStore) et qui se déploie dans le répertoire bin de l'application Web?WSPBuilder, Config Store et appel partiellement de confiance

Lorsque je tente de referecne la boutique de config dans mon code behind je reçois cette exception ...

System.Security.SecurityException: Cet ensemble ne permet pas en partie les appelants de confiance

Je avons ajouté les appelants partiellement confiance attribuent à mon projet

[assembly: AllowPartiallyTrustedCallers()] 

et les autorisations sharepoint attributs sur mes méthodes

[SharePointPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Impersonate = true)] 
[SharePointPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, ObjectModel = true)] 

Mais cela n'a semble pas avoir fait quoi que ce soit, je l'ai également précisé une politique de CAS personnalisé avec le IPermission correct

<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" UnsafeSaveOnGet="True" Unrestricted="True" /> 

Et toujours sans succès, sans doute d'autres personnes ont fait cela, je doit être manquant quelque chose

J'utilise WSP Builder version 1.0.5.

Répondre

1

Vous avez ajouté [assembly: AllowPartiallyTrustedCallers()] à VOTRE assembly, de sorte que votre assembly autorise les appelants partiellement approuvés à appeler IT. Mais le ConfigStore lui-même n'a pas cet attribut.

Est-il possible d'ajouter votre DLL au GAC? (la solution facile). Ou ajoutez également le [assembly: AllowPartiallyTrustedCallers()] au projet ConfigStore.

+0

Est-ce que le ConfigStore a besoin de cet attribut s'il se trouve dans le GAC? Je pensais que toutes les assemblées du GAC étaient entièrement fiables. Le code source de ConfigStore est disponible, c'est donc une possibilité. – Rob

+0

Lorsqu'un assembly se trouve dans le GAC, il est lui-même entièrement approuvé. Cela ne signifie pas qu'il autorise les appels provenant d'assemblages partiellement approuvés. Je pense... – Colin

0

Avez-vous ajouté l'assembly à la section web.config SafeControls?

<SafeControl Assembly="Microsoft.Office.Server.Search, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.Search.WebControls" TypeName="*" Safe="True" /> 

Aussi, vous devrez peut-être abaisser le niveau de confiance dans le web.config:

<trust level="WSS_Minimal" originUrl="" /> 

Voir la documentation MSDN pour ASP.Net and SharePoint trust levels.

+0

Oui contrôle de sécurité ajouté. Je ne suis pas sûr d'abaisser le niveau de confiance car je pense que c'est le problème - si je définis le niveau de confiance à plein le code fonctionne. Cependant, c'est juste mon assemblée que je veux avoir les autorisations requises pour exécuter le code. – Rob

+0

Avez-vous signé l'assemblée du tout? – Moo

+0

Oui, en effet, WSPBuilder crée et signe automatiquement le projet. – Rob