Domanda

sto testando fuori Visual Studio 2010.

Ho creato una soluzione in modalità sandbox con un webpart. E 'distribuito su OK.

Allora ho provato ad aggiungere una DLL per la soluzione in grado di contenere la logica di business. Questo dll è firmato con il proprio chiave con nome.

Ora distribuire la soluzione, ottengo il seguente errore quando il codice tenta di utilizzare la DLL logica di business:

Errore Web Part: un'eccezione non gestita generato dal codice utente involucro di Eseguire il metodo in attendibilità parziale dominio app: System.Security.SecurityException: Che il montaggio non consente parzialmente chiamanti attendibili. a SharePointProject1.WebPart1.WebPart1.button_Click (Object mittente, EventArgs) A System.Web.UI.WebControls.Button.OnClick (EventArgs mangiare System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) a System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler SourceControl, String eventArgument) a System.Web.UI.Page.ProcessRequestMain (booleano includeStagesBeforeAsyncPoint, booleano includeStagesAfterAsyncPoint) a System.Web.UI.Page.ProcessRequest (booleano includeStagesBeforeAsyncPoint, booleano includeStagesAfterAsyncPoint) a System.Web.UI.Page.ProcessRequest () a System.Web.UI.Page.ProcessRequest (HttpContext contesto) a Microsoft.SharePoint.UserCode.SPUserCodeWebPartWrapper.ExecuteHttpRequest (SPUserCodeWebPartHttpRequestContext webPartExecutionContext, SPUserCodeWebPartHttpResponse httpRequestResponse) a Microsoft.SharePoint.UserCode.SPUserCodeWebPartWrapper.Execute (SPUserCodeExecutionContext ExecutionContext) a Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.Execute (Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, Byte [] binaryUserCodeToken, Byte [] proxyOperationToken, SPUserCodeExecutionContext ExecutionContext) L'azione che fallito era: LinkDemand Il montaggio o AppDomain che era fallito: SharePointProject1, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 0b5230b1615a26d4 Il metodo che ha causato l'errore è stato: System.String Toggle (System.String) La Zona del gruppo che non è riuscito era: MyComputer l'url del assembly non riuscita era: file: /// C: /ProgramData/Microsoft/SharePoint/UCCache/8CCB51CC8164124/CF0F683C1542422E80050AFD2BD3D785%2DHbWRnjvb49VmZuA5OCXjhZbPX0JMH5a6kSdXvb4VoxE%3D-8/SharePointProject1.dll

Qualcuno sa come risolvere questo problema?

È stato utile?

Soluzione

E 'la logica di business di assemblaggio in GAC?

Se è così aggiungi ai tuoi APTCA assembly.cs per permettere al vostro codice parzialmente attendibile chiamarlo [Assembly: System.Security.AllowPartiallyTrustedCallersAttribute ()]

Modifica: Dal momento che il codice di sandbox non è in esecuzione piena fiducia, sono abbastanza sicuro (qualcuno mi corregga se im sbagliato) si riceverà anche l'errore se l'isnt logica di business nel GAC, dal momento che le assemblee fortemente nome non possono essere chiamati da assemblee parzialmente attendibili.

Anche prima di decorare la vostra assembly con l'attributo di cui sopra si dovrebbe esaminare la logica di business per le vulnerabilità di sicurezza per evitare di attirare gli attacchi.

Shawn Farkas ha un articolo su l'attributo qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top