会社の開発者が使用する小さな内部ツールを構築しています。小さな目標の 1 つは、パスワードを変更するときに複数の場所を更新することです。これらの更新が必要な場所の 1 つは Subversion です。ほとんどの開発者は TortoiseSvn を使用していますが、すべての開発者が使用しているわけではありません (したがって、私はプログラムに依存しないソリューションを好みますが、必須ではありません)。
このトピックに関する私の調査から、私の第一印象は、Tortoise または他のアプリケーションには、私が使用できるパスワード変更機能があるというものでした。これは私が見つけることができるものからそうではありません。そこで、次に考えたのは、%APPDATA%\Subversion\auth\svn.simple に保存されている暗号化されたパスワードを変更することでした。このようにして、任意のプログラムをバイパスし、ローカル マシンの資格情報を修正するだけで、楽に進むことができます。
Windows マシンの場合、Subversion は暗号化に wincrypt password-store を使用します。そのコードでの作業はかなり簡単でした。暗号化を処理するために機能するこのDPAPI (Obviex からの)コードを見つけました。それは私のために詳細を処理するだけです(小さなメモ:私はいくつかの小さな問題がSystem.Security.Cryptography.ProtectedData
あったので、この別の方法に固執することにしました).
このコードを使用して、svn.simple フォルダーからパスワードを解読し、それが機能することを確認できました (以前に保存された認証が解読され、正しいパスワードが表示されました)。ただし、パスワードを暗号化して適切な場所に保存すると、常に TortoiseSvn からログイン画面が表示されます。私の暗号化されたパスワードが好きではありません。
だから私の質問は何ですか...誰かが私がやろうとしていることと同様のことを達成しましたか? Subversion のパスワードを更新するのを忘れた方がいいですか? リポジトリのチェックアウトを強制して資格情報を提供し ( SharpSvnを使用してこれを行うことができます)、終了したらリポジトリを削除する必要がありますか?
誰かがこの問題をすでに解決していて、正しい方向に向けることができることを期待しているだけだと思います。ご不明な点がございましたら、お知らせください。
その他の注目すべきリンク:
- TortoiseSVN パスワードの抽出に関する Stackoverflow の質問
- TortoiseSVN Password Decrypter - svn.simple 内のファイルを解析するためにこれを使用しました。新しい暗号化されたパスワードを既存の svn 認証ファイルに適用するために小さな変更が加えられました。