2009-06-09 9 views
0

Hat jemand WSP Builder verwendet, um eine Lösung zu verpacken, die den Config Store (http://www.codeplex.com/SPConfigStore) verwendet und in das bin-Verzeichnis der Webanwendung implementiert?WSPBuilder, Config Store und teilweise vertrauenswürdige Anrufer

Wenn ich versuche, die Config-Speicher in meinem Code hinter Datei referecne ich diese Ausnahme erhalten ...

System.Security.SecurityException: Das Montage erlaubt es nicht, teilweise vertrauenswürdigem Anrufer

I‘ hinzugefügt haben Attribute der teilweise vertrauenswürdige Anrufer Attribut mein Projekt

[assembly: AllowPartiallyTrustedCallers()] 

und die Sharepoint-Berechtigungen für meine Methoden

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

Aber dies scheint nicht alles getan zu haben, ich habe auch eine benutzerdefinierte CAS-Richtlinie mit der richtigen IPermission

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

Und noch keinen Erfolg, doch andere Menschen getan haben dies angegeben, I muss etwas fehlen

Ich benutze WSP Builder Version 1.0.5.

Antwort

1

Sie haben die Baugruppe [assembly: AllowPartiallyTrustedCallers()] zu Ihrer Baugruppe hinzugefügt, sodass Ihre Baugruppe teilweise vertrauenswürdigen Anrufern den Anruf bei der IT ermöglicht. Aber der ConfigStore selbst hat dieses Attribut nicht.

Ist es möglich, Ihre DLL zum GAC hinzuzufügen? (einfacher Ausweg). Oder fügen Sie dem ConfigStore-Projekt auch [assembly: AllowPartiallyTrustedCallers()] hinzu.

+0

Benötigt der ConfigStore dieses Attribut, wenn es im GAC enthalten ist? Ich dachte, dass alle Assemblys im GAC vollständig vertrauenswürdig sind. Der ConfigStore-Quellcode ist verfügbar, so dass dies möglich ist. – Rob

+0

Wenn sich eine Assembly im GAC befindet, wird sie automatisch vollständig vertraut. Das bedeutet nicht, dass Aufrufe von teilweise vertrauenswürdigen Assemblys zulässig sind. Ich denke... – Colin

0

Haben Sie die Assembly zum Abschnitt web.config SafeControls hinzugefügt?

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

Auch müssen Sie die Vertrauensstufe in der web.config senken:

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

die MSDN-Dokumentation finden Sie für ASP.Net and SharePoint trust levels.

+0

Ja sichere Kontrolle hinzugefügt. Ich bin mir nicht sicher, ob ich das Vertrauensniveau senken könnte, denn ich denke, das ist das Problem - wenn ich die Vertrauensstufe auf voll setze, läuft der Code. Es ist jedoch nur mein Assembley, dass ich die erforderlichen Berechtigungen zum Ausführen des Codes haben möchte. – Rob

+0

Haben Sie die Versammlung überhaupt unterschrieben? – Moo

+0

Ja, der WSPBuilder erstellt und signiert das Projekt automatisch. – Rob