2013-04-16 12 views
8

Ich habe eine ASP.NET WebForms App mit Microsoft ASP.NET Universal Providers (NuGet) für Mitgliedschaft und Rollen. Bei voller Vertrauensstellung funktioniert alles einwandfrei, aber wenn ich web.config editiere, um mittlere Vertrauenswürdigkeit anzugeben, erhalte ich beim Laden einer Seite, die auf die Mitgliedschaft zugreift, folgende Fehlermeldung:System.Web.Providers funktioniert nicht in Medium Trust

Typ 'System.Web.Providers.DefaultMembershipProvider' kann nicht instanziiert werden eine teilweise vertrauenswürdige Sicherheitsrichtlinie (AllowPartiallyTrustedCallersAttribute ist auf der Zielassembly nicht vorhanden).

Ich habe das Web gesucht und habe nicht viele Informationen darüber gefunden, ob dies eine bekannte Einschränkung ist oder ob es einen Workaround gibt. Ich arbeite an der Open-Source-App Gallery Server Pro, die in der MS Web Gallery vertrieben wird und mittlere vertrauenswürdige Umgebungen unterstützen muss.

Irgendein Einblick?

[Bearbeiten] Per Antrag, hier ist die web.config Sachen (ich bin keine Profile oder den Sitzungsstatus Provider):

<membership defaultProvider="DefaultMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultMembershipProvider" applicationName="Gallery Server Pro" connectionStringName="GalleryDb" passwordFormat="Clear" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="50" minRequiredPasswordLength="2" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </providers> 
</membership> 
<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" defaultProvider="DefaultRoleProvider"> 
    <providers> 
    <clear /> 
    <add name="DefaultRoleProvider" applicationName="Gallery Server Pro" connectionStringName="GalleryDb" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </providers> 
</roleManager> 
+0

Gehen Sie durch diesen Prozess http://msdn.microsoft.com/en-us/library/wyts434y%28v=vs.100%29.aspx? ("Konfigurieren sichtbarer Partial Trust Assemblies" scheint interessant) – jbl

+0

Ich habe versucht, partialTrustVisibleAssemblies zu web.config hinzuzufügen und habe den gleichen Fehler (auch versucht FullTrustAssemblies für gutes Maß, aber kein Glück). Dies wird jedoch erwartet, da dieser Trick für die Arbeit mit Assemblys entwickelt wurde, die mit AllowPartiallyTrustedCallersAttribute markiert sind, was System.Web.Providers anscheinend nicht tut. – Roger

+1

Können Sie Ihre Mitgliedschaft | RoleManager | Profil | Sessionstate-Tags von web.config posten? – Win

Antwort

1

Ich denke, es ist in Cookies, weil der Fang Rolle sein kann entfernen,

<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" ...

, dass ein Teil oder machen es falsch und dann prüfen, ob seine Arbeits ..

Als mittlere Sicherheits Cookies blockiert eine d viele weitere Dinge, da Cookies nicht als sicher gelten. Sein Grundmaterial für Aasfresser (Hacking Daten aus Links über/Temp-Dateien).

ich diese Hoffnung tun ..

+0

Leider hat das nicht geholfen. Ich habe ein paar Varianten der Cookie-Einstellungen ausprobiert, aber es war immer der gleiche Fehler. Ich sollte meine letzte Version notieren, die einen anderen Provider aber die gleichen Rollenmanager-Einstellungen verwendet, DID arbeiten in mittlerer Vertrauenswürdigkeit. – Roger

Verwandte Themen