3

会社の開発者が使用する小さな内部ツールを構築しています。小さな目標の 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を使用してこれを行うことができます)、終了したらリポジトリを削除する必要がありますか?

誰かがこの問題をすでに解決していて、正しい方向に向けることができることを期待しているだけだと思います。ご不明な点がございましたら、お知らせください。

その他の注目すべきリンク:

4

1 に答える 1

1

これはあなたが求めていたものとは完全に異なる方向であることは知っていますが、適切な状況では、それはあなたの目標を達成します...

Active Directory を使用してユーザーを管理していて、SVN サーバー アプリケーションを切り替えたい場合は、VisualSVN サーバーを検討する必要があります。LDAP に対する認証をサポートし、authz ファイルでユーザーの SID を使用するため、ユーザー名とパスワードの変更は透過的です。さらに、商用利用は無料です

于 2012-10-14T08:48:55.343 に答える