2010-03-07 8 views
8

Dans une application C#, je crée une signature à l'aide de DSACryptoServiceProvider. Si l'utilisateur exécutant l'application a un profil temporaire, j'obtiens une exception: CryptographicException: "Le profil de l'utilisateur est un profil temporaire."Comment puis-je savoir si le profil de l'utilisateur exécutant une application est un profil temporaire?

L'erreur peut être résolue si j'ai défini DSACryptoServiceProvider.UseMachineKeyStore = true; Mais je veux d'abord vérifier si ce changement est nécessaire. Pour cela, je veux dans mon code vérifier que l'utilisateur a un profil temporaire.

Comment puis-je vérifier cela?

+0

pas le même cas d'utilisation, mais c'est une question similaire - http://stackoverflow.com/questions/43762021/programmatically-detect-that-user-has-logged-in-with-temporary-profile – William

Répondre

1

Les seules informations que j'ai trouvées sur ce problème semblent pointer vers le déploiement de clickonce.

Il y a solution apparemment pas connu puisque vous devez utiliser un profil non temporaire afin de faire les appels que vous faites ...

Apparemment, vous semblez avoir répondu à votre propre question ici ... regardez

Je veux dans mon code de vérifier de l'utilisateur a un profil temporaire.

Comment puis-je vérifier cela?

Et la réponse est ...

Si l'utilisateur exécutant l'apllication a un profil temporaire, je reçois une exception : CryptographicException: « Le profil de l'utilisateur est un temporaire profil."

Semble assez simple, si vous obtenez cette erreur, vous devez exécuter en utilisant un profil différent. Vous pouvez avoir une méthode de test qui exécute ce code comme une vérification avant d'exécuter votre code réel.

J'ai entendu parler d'une autre option si, en supposant que cela est dans le cadre d'une application asp.net, vous devriez être en mesure d'obtenir le profil actuel comme celui-ci ...

ProfileCommon profile = HttpContext.Current.Profile as ProfileCommon; 

De là, vous devriez être en mesure d'interroger l'instance profil, je crois que son type de ProfileBase documenté ici ...

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

Hope this helps choses au clair un peu pour vous.

Questions connexes