In einer C # -Anwendung erstelle ich mit DSACryptoServiceProvider eine Signatur. Wenn der Benutzer, der die Anwendung ausführt, ein temporäres Profil hat, erhalte ich eine Ausnahme: CryptographicException: "Das Profil für den Benutzer ist ein temporäres Profil."
Der Fehler kann behoben werden, wenn ich DSACryptoServiceProvider.UseMachineKeyStore = true; Aber ich möchte zuerst prüfen, ob diese Änderung notwendig ist. Dafür möchte ich in meinem Code überprüfen, ob der Benutzer ein temporäres Profil hat.
Wie kann ich das überprüfen?
Die einzige Information, die ich zu diesem Thema gefunden habe, scheint auf clickonce deployment zu verweisen.
Es gibt scheinbar keine Problemumgehung, da Sie ein nicht temporäres Profil verwenden sollten, um die von Ihnen getätigten Anrufe zu tätigen ...
Offenbar scheinen Sie Ihre eigene Frage hier beantwortet zu haben ...
Ich möchte in meinem Code den Benutzer überprüfen hat ein temporäres Profil.
Wie kann ich das überprüfen?
Und die Antwort ist ...
Wenn der Benutzer die Anwendung ausführt hat ein temporäres Profil, ich bekomme ein Ausnahme: CryptographicException: "Das Profil für den Benutzer ist ein temporäres Profil. "
Scheint ziemlich einfach, wenn Sie diesen Fehler erhalten, müssen Sie mit einem anderen Profil ausführen. Sie können eine Testmethode verwenden, die diesen Code als Überprüfung ausführt, bevor Sie Ihren eigentlichen Code durchlaufen.
Ich habe von einer anderen Option gehört, vorausgesetzt, dies ist im Kontext einer asp.net-Anwendung, Sie sollten in der Lage sein, das aktuelle Profil wie folgt zu erhalten ...
%Vor%Von dort sollten Sie in der Lage sein, die Profilinstanz abzufragen, ich glaube, es ist eine Art von hier dokumentierter ProfileBase ...
Ich hoffe, das hilft Ihnen dabei, die Dinge ein wenig zu klären.