Domanda

Lavoro per un'azienda che produce un prodotto commerciale e al momento stiamo provando a fornire una soluzione che consentirà ad alcuni dei nostri clienti più grandi la possibilità di distribuire il lato client della nostra applicazione tramite ClickOnce.

L'intenzione è che i nostri clienti distribuiscano l'installazione ClickOnce in una condivisione di rete e quindi inviino un collegamento al manifest dell'applicazione ai client via e-mail o in altro modo.

Siamo stati in grado di integrare correttamente la produzione dell'installazione ClickOnce nella nostra build automatizzata (utilizzando gli strumenti della riga di comando di Mage) e possiamo quindi eseguire correttamente l'installazione effettiva su un computer client. Tuttavia, dopo l'installazione e il lancio, la nostra applicazione genera SecurityException in fase di esecuzione, poiché gli viene negato l'accesso a FileIOPermission. La nostra applicazione richiede autorizzazioni FullTrust, ma sembra che se la posizione CodeBase dell'assembly in esecuzione sia una condivisione di rete, ti verranno concesse solo le autorizzazioni LocalIntranet (che non includono FileIOPermission).

C'è un articolo qui che sembra indicare che questo è un problema abbastanza comune: http://blogs.msdn.com/shawnfa/archive/ 2004/12/30 / 344554.aspx

In questo articolo viene fornita una soluzione alternativa utilizzando lo strumento CasPol, ma dovremmo eseguirlo su ogni singolo computer client nell'ambiente di distribuzione. Questo non è davvero un problema in sé, è più il fatto che hai bisogno dei diritti di amministratore sul computer client per eseguire ciò che viene fatto con lo strumento CasPol, e la maggior parte dei clienti nel nostro l'ambiente del cliente non avrà questi privilegi.

È stato anche pubblicato un articolo sullo stesso blog che sembra implicare che la necessità di eseguire la correzione CasPol è stata alleviata con la versione di .NET 3.5 SP1: http: //blogs.msdn. com / shawnfa / archive / 2008/05/12 / FullTrust-on-the-localintranet.aspx

Tuttavia, ho modificato la nostra applicazione in modo specifico per la versione SP1 del framework come descritto in questo articolo: http://msdn.microsoft.com/en-us/library/bb398202 aspx #

Dopo aver fatto ciò, abbiamo ancora riscontrato la stessa SecurityException. Quindi ho applicato alcune impostazioni specifiche di ClickOnce SP1 come dettagliato nell'articolo, ma ancora nessuna gioia. Se avvio l'applicazione direttamente dalla condivisione della rete di pubblicazione mi vengono concesse le autorizzazioni, sembra che solo nel contesto di ClickOnce ci vengano rifiutate.

Qualcun altro ha riscontrato problemi simili a questi? Avrei pensato se ci fosse stato un problema nella versione SP1 del framework rispetto a queste autorizzazioni che qualcun altro l'avrebbe notato prima di noi poiché non abbiamo ancora spedito una soluzione ClickOnce.

È stato utile?

Soluzione

Penso di aver riscontrato un problema simile su .NET 4.0 con un'eccezione di sicurezza durante il pranzo. La soluzione che ho trovato è stata firmare digitalmente il manifest con un certificato approvato (non quello predefinito che Visual Studio genera per il tuo progetto).

È un "bug" noto. (o in base alla progettazione) sui manifesti distribuiti ClickOnce.

Il tuo progetto è firmato?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top