2010-10-29 5 views
5

Ho scaricato recaptcha.dll in 1.0.1.0 e 1.0.4.0. Quando si cerca di rendering del controllo, ottengo la seguente eccezione:. Eccezione di sicurezza netta quando si tenta di eseguire il rendering di un controllo reCaptcha

Security Exception Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Stack Trace:[SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0 System.Web.UI.NamespaceTagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs, Boolean throwOnError) +209

La soluzione a questo, come previsto da un rapido Googling, è quello di utilizzare caspol.exe per aggiungere piena fiducia al gruppo recaptcha.dll.

C: \% path% \ caspol -af C: \ inetpub \ wwwroot \% path% \ bin \ recaptcha.dll

A questo punto, ottengo il seguente errore:

ERROR: This assembly is not strong name signed

A parte scaricare il codice sorgente e ricompilarlo localmente, c'è qualche altro modo per farlo funzionare?

risposta

0

Essere in grado di arrivare a questo lavoro utilizzando la dll non firmato che viene reso disponibile per il download, sono entrato in possesso della sorgente, compilato e firmato io stesso e questo funziona bene.

Sarebbe stato bello se qualcosa, da qualche parte lungo la strada, aveva indicato che avrei potuto fare questo ...

3

Ho incontrato lo stesso problema e la soluzione mi ha aiutato. Ho anche dovuto eseguire i seguenti passaggi sul codice sorgente di reCAPTCHA ASP.NET.

1) Aprire il file AssemblyInfo.cs del progetto DLL e aggiungere la seguente istruzione.

utilizzando System.Security;

2) Aggiungere la seguente riga al AssembleInfo.cs.

[assembly: AllowPartiallyTrustedCallers()]

3) Recomiple le DLL e ridistribuire i vostri progetti. Questo errore dovrebbe essere risolto.

NOTA: il sito Web su cui sto lavorando utilizza 1and1.com come società di hosting. Ho anche dovuto impostare la proprietà Proxy nel code-behind per evitare un'eccezione di timeout durante HttpWebRequest.

recaptcha.Proxy = new WebProxy("http://ntproxyus.lxa.perfora.net:3128"); 

Spero che questo aiuti qualcuno, ma ora ho reCAPTCHA installato e funzionante su un sito ospitato su ASP.NET 1and1.com.

+0

Su un hosing condiviso non possiamo usare lo strumento" caspol.exe "menzionato nella risposta precedente.Non ho dovuto modificare il file AssemblyInfo.cs. ha cambiato l'URL del proxy per il recaptcha e ha funzionato su hosting condiviso 1and1.com. La tua soluzione mi ha aiutato. – Rahatur

2

Ho avuto questo stesso problema. Dopo alcuni headbanging, mi sono reso conto che avevo scaricato il file recaptcha.dll da un file zip. Così, ho fatto clic con il pulsante destro del mouse sulla DLL, sono andato alle proprietà e ho fatto clic sul pulsante di sblocco.

che ha risolto il problema per me.

0

Nei IIS andare al pool di applicazioni, non ha ottenuto al progetto, fare clic destro e selezionare Proprietà avanzate e impostare LoadUserProfile su True.

1

mi sono imbattuto in due diversi problemi di sicurezza durante il tentativo di distribuire reCAPTCHA di Google per il nostro server di produzione in un ambiente di hosting condiviso su hostmysite.com

1) In primo luogo, non ho potuto ottenere il modulo per visualizzare affatto.Invece, vedrei un messaggio di errore che dice "Quell'assemblaggio non consente chiamate parzialmente attendibili". Ciò è stato risolto scaricando una DLL che qualcuno ha ricompilato dal codice sorgente con l'aggiunta di [assembly: AllowPartiallyTrustedCallers]. Il download DLL e maggiori dettagli sono qui: https://code.google.com/p/recaptcha/issues/detail?id=100

2) Dopo la distribuzione che DLL sono stato in grado di ottenere il reCAPTCHA per visualizzare inizialmente sulla forma, ma l'invio del modulo ha provocato lo stesso errore di sicurezza elencati nel post originale :

"Descrizione:.. l'applicazione ha tentato di eseguire un'operazione non consentita dai criteri di sicurezza per garantire la questa applicazione l'autorizzazione si prega di contattare l'amministratore di sistema o modificare il livello di attendibilità dell'applicazione nel file di configurazione"

Ho inviato un ticket al nostro supporto di hosting e sono riusciti a risolvere il problema con questa spiegazione:

"Probabilmente stava funzionando sul tuo computer perché lo hai impostato su un ambiente Full Trust mentre il server web su cui si trova il sito è impostato su Medium Trust. Pertanto dispone di un set limitato di URI attendibili. Ora ho aggiunto l'URI per Google Recaptcha all'elenco di fiducia e il modulo sta ora lavorando sul sito. Se hai ulteriori problemi, faccelo sapere. "