2013-04-16 10 views
8

Ho un'app WebForms ASP.NET che utilizza provider Microsoft ASP.NET Universal (NuGet) per l'appartenenza e i ruoli. Sotto piena fiducia tutto funziona bene, ma quando modifico web.config per specificare la media trust ottengo questo errore quando carico una pagina che accede all'appartenenza:System.Web.Providers non funziona in media fiducia

Tipo 'System.Web.Providers.DefaultMembershipProvider' non può essere istanziato sotto una politica di sicurezza parzialmente attendibile (AllowPartiallyTrustedCallersAttribute non è presente nell'assieme di destinazione).

Ho cercato sul Web e non ho trovato molte informazioni sul fatto che si tratti di una limitazione nota o se esiste una soluzione alternativa. Sto lavorando all'app open source Gallery Server Pro, che è distribuita in MS Web Gallery e deve supportare ambienti di media affidabilità.

Qualche idea?

[Edit] Per la richiesta, ecco la roba web.config (non sto usando profili o il provider di stato della sessione):

<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

Hai passare attraverso questo processo http://msdn.microsoft.com/en-us/library/wyts434y%28v=vs.100%29.aspx? ("Configurare gli assembly visibili attendibili parziali" sembra interessante) – jbl

+0

Ho provato ad aggiungere partialTrustVisibleAssemblies a web.config e ho ottenuto lo stesso errore (ho anche provato fullTrustAssemblies per buona misura, ma senza fortuna). Ciò è previsto, tuttavia, poiché questo trucco è progettato per funzionare su assiemi contrassegnati con AllowPartiallyTrustedCallersAttribute, che apparentemente non è System.Web.Providers. – Roger

+1

Potresti pubblicare i tuoi tag Membership | RoleManager | Profile | Sessionstate di web.config? – Win

risposta

1

Penso che possa essere causa di cattura ruolo nei cookie ,

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

rimuovere quella parte, o rendono falsa e quindi verificare se il suo lavoro ..

come mezzo di sicurezza bloccherà i cookie un d molte altre cose, poiché i cookie non sono considerati sicuri. Il suo materiale di base per scavengers (hacking di dati da file left/temp).

Spero che questo possa fare ..

+0

Sfortunatamente, questo non ha aiutato. Ho provato alcune variazioni sulle impostazioni dei cookie ma era sempre lo stesso errore. Dovrei prendere nota della mia ultima versione, che utilizzava un provider diverso ma lo stesso ruolo delle impostazioni di Gestore, il DID funziona in media fiducia. – Roger

Problemi correlati