2010-03-07 6 views
8

In un'applicazione C#, sto creando una firma utilizzando DSACryptoServiceProvider. Se l'utente che esegue l'apllication ha un profilo temporaneo, ottengo un'eccezione: CryptographicException: "Il profilo per l'utente è un profilo temporaneo."Come faccio a sapere se il profilo per l'utente che esegue un'applicazione è un profilo temporaneo?

L'errore può essere risolto se imposto DSACryptoServiceProvider.UseMachineKeyStore = true; Ma prima voglio controllare se questo cambiamento è necessario. Per questo, voglio che il mio codice verifichi che l'utente abbia un profilo temporaneo.

Come posso verificarlo?

+0

non lo stesso caso d'uso, ma questa è una domanda simile - http://stackoverflow.com/questions/43762021/programmatically-detect-that-user-has-logged-in-with-temporary-profile – William

risposta

1

Le uniche informazioni che ho trovato su questo problema sembrano indicare la distribuzione clickonce.

Non c'è soluzione apparentemente nessun conosciuto dal momento che si deve usare un profilo non temporanea, al fine di effettuare le chiamate che si stanno facendo ...

A quanto pare si sembrano aver risposto alla tua domanda guarda qui ...

Voglio nel mio codice verificare l'utente ha un profilo temporaneo.

Come posso verificarlo?

E la risposta è ...

Se l'utente che esegue l'apllication ha un profilo temporaneo, ottengo un eccezione: CryptographicException: "Il profilo per l'utente è un temporanea profilo."

Sembra abbastanza semplice, se si ottiene questo errore è necessario eseguire utilizzando un profilo diverso. Si potrebbe avere un metodo di prova che esegue questo codice come controllo prima di eseguire il codice effettivo.

Ho sentito parlare di un altra opzione, però, assumendo questo è nel contesto di una domanda di asp.net si dovrebbe essere in grado di ottenere il profilo corrente come questo ...

ProfileCommon profile = HttpContext.Current.Profile as ProfileCommon; 

Da lì si dovrebbe essere in grado di interrogare l'istanza profilo, credo che il suo un tipo di ProfileBase documentato qui ...

http://msdn.microsoft.com/en-us/library/ms151820(v=VS.100).aspx

Spero che questo aiuti a chiarire le cose un po 'per voi.

Problemi correlati