アプリケーション(SharpSSHを使用するC#プログラム)があり、現在ログインしていないユーザーの資格情報を使用して実行しようとすると、 「キーセットが存在しません」というCryptographicExceptionエラーが発生しました。ユーザーがログインしていないと「keysetが存在しません」というエラーが表示される
現在ログインしているユーザーの資格情報でアプリケーションを実行すると、すべて正常に動作します。
なぜこのようなことが起こり得るのでしょうか?
アプリケーション(SharpSSHを使用するC#プログラム)があり、現在ログインしていないユーザーの資格情報を使用して実行しようとすると、 「キーセットが存在しません」というCryptographicExceptionエラーが発生しました。ユーザーがログインしていないと「keysetが存在しません」というエラーが表示される
現在ログインしているユーザーの資格情報でアプリケーションを実行すると、すべて正常に動作します。
なぜこのようなことが起こり得るのでしょうか?
他のすべてのことは同じです(あなたが資格情報にアクセスする権利を持っているように)私は必要とする資格情報がユーザーのハイブ/プロファイルに格納されていると推測しています。 SharpSSHが使用するcertificate store(または、SharpSSHを使用しているかどうかはわかりません。[codeplexには1つあり、sourceforgeには1つあります])。
資格情報がHKEYUserに関連付けられていると仮定すると、修正するには、LoadUserProfileというユーザーのプロファイルを読み込む必要があります。つまり、ユーザー用のセキュリティトークンを用意する必要があります(つまり、ログインする必要がありますが、対話的にする必要はありません)。あるいは、ユーザーに縛られていない証明書ストアに変更することもできます。