Nant庫&Windows統合認証
-
21-08-2019 - |
質問
私たいというを行うマイスター SourceGear Vault(V4.1.4)Nant(V0.86.3317.0)です。
、本当にありがとうま庫として使用Windows認証からNantをしています。
のNantブロックを使用しているinitialiseの金庫については:
<target name="InitialiseVaultSettings">
<echo>InitialiseVaultSettings</echo>
<vaultsetloginoptions user="${vault.Username}" password="${vault.Password}" URL="${vault.Host}" repository="${vault.Repository}" />
<vaultsetworkingfolder repositoryFolderPath="${vault.Folder}" diskPath="${vault.WorkingDirectory}" createDiskPath="true" />
をしているので、プロジェクトの動作と他のデベロッパー、ハード符号化ユーザー名とパスワードをNantビルドファイルは良い方法がありました。両 username
や password
必要なオプションの vaultsetloginoptions
コマンドです。
その他の代替(全と豊漁を含む):
(a)Hardcodeの管理者のアカウントのNant性ログ庫として使用する。こないのではない、としてその後、ゆったり監査証跡の責任者の責任のチェックイン/チェックアウト業務のnantスクリプトを行います。でも問題が解決してファイルの検出(一部のスクリプトは、すべてのファイルを確認返ソース制御の前を生成するラベルVault).
(b)を使用し、C#のスクリプトからNantコードのプロパティを設定のユーザー名とパスワードを動的に...を除きました問題は、パスワードをユーザーからも
(c)の読みを記憶されているプロファイルからの情報を殺クライアントとの接続を利用する場合は、必要な場合はこちらに保存されます。).
おります。
解決 2
私はプロトタイプが回避策この問題の成功を実現しています。
完全なソースを、下記の回避策のためのバイナリはここで見つけることができます:
私はいくつかのカスタムNAntのタスクや機能を作成しました。
<VaultLogin>
は、以前に格納されたユーザー名とパスワードについては、Windowsのレジストリをチェックします。見つからない場合は、ログイン画面をユーザーに要求します。これは、2つの機能のエントリを格納し、(ログインが失敗した場合には - 下記<SaveVaultLogin>
を参照)、レジストリをクリアします:
${VaultLoginFunctions::UserName()}
${VaultLoginFunctions::Password()}
<vaultsetloginoptions>
タスクは次に機能を使用することができる:
<vaultsetloginoptions user="${VaultLoginFunctions::UserName()}" password="${VaultLoginFunctions::Password()}" URL="${vault.Host}" repository="${vault.Repository}" />
<vaultsetloginoptions>
タスクを呼び出した後、我々はその後、レジストリに戻って、ユーザー名とパスワードの値を書き込み<SaveVaultLogin>
タスクを呼び出します。ユーザー名とパスワードが正しくない場合、スクリプトはタスクに失敗したように、これは(唯一成功した認証の詳細が格納されていることを確認します。
これは、一緒に入れたコードブロックは、次のとおりです。
<target name="InitialiseVaultSettings">
<echo>InitialiseVaultSettings</echo>
<loadtasks assembly="CompassHealth.NAntExtensions.Tasks.dll" />
<VaultLoginGet />
<echo message="UserName = ${VaultLoginFunctions::UserName()}" />
<vaultsetloginoptions user="${VaultLoginFunctions::UserName()}" password="${VaultLoginFunctions::Password()}" URL="${vault.Host}" repository="${vault.Repository}" />
<vaultsetworkingfolder repositoryFolderPath="${vault.Folder}" diskPath="${vault.WorkingDirectory}" createDiskPath="true" />
<!-- need to save the login here, as it is cleared once VaultLoginGet is called, this ensures that only correct username and password are stored -->
<VaultLoginSave />
アップデート:今ポストの上部にあるバイナリや回避策のためのソースへのリンク
他のヒント
私は知らない金庫なのでご容赦下さい可能性が曖昧のこの答えになります。私たNAnt多いものを取得する(課題execs等)は、固有の可能性にするとともに、統合認証モードになります。
最終的には、認証が渡されたといずれかのユーザーが走り、親NAntます。もっとも、このこうした金庫のNAnt課題な 支援 統合認証?意味の場合、 vaultsetloginoptions タスク が必要で ユーザとパスワード引数が押されるわけではありませんの良い方法で伝える資格(ご指摘のとおり).
場no 回避策 の可能性に欠け庫のNAnt作業することは可能ではな利用の <exec
> タスクの呼びコマンドライン版のクライアント側のツールなものだい)してご利用いただけます。このオプション、統合認証を自動的にキックして、ユーザーのNAnt工程と同様に接続するVault.
またこの数いることを当社の構築です。私はexecんのコマンドライン版は書いて自分のタスク(s)を伸ばしてNAnt。もしかしたらこれが可能です。
更新
かみのPdfフォーラム及びその 広告の統合 一つの方法に過ぎないVaultお客様のユーザーと共有に向けた運営を行っているサーバーです。 からのフォーラム:
The Vaultお客様は常に迅速かつ のユーザ名/パスワードになります。当社の広告 統合に限り、サーバー 確認するとともに、パスワードを入力 一致するパスワードに活躍 ディレクトリです。
そのため、ありません true うためのクライアントに共有に向けた運営を行っていwindows認証情報を内蔵。The Vaultクライアントプログラムの開催は難しい状況ですが入力をユーザー名とパスワードで実行する場合広告モードになります。しかし残念というを保存せずにユーザ名/パスワードのチャンスの シームレス NAnt統合が極ます。
スコット・サアドの提案を見た後、残念ながらWindows認証を使用して、それを呼び出すためのいずれかのコマンドラインツールにはオプションはないようである。
私の現在の考え方は、上記(b)に沿ったものである。
私は現在のWindowsユーザのVaultのユーザー名とパスワードを求め、ナントスクリプトから呼び出すことができるライブラリを作成します。
ライブラリは、このWindowsユーザーのために以前に入力したVaultのユーザ名とログインのresigstryエントリを検索します。それが存在する場合、それはユーザーの操作なしにスクリプトに渡されます。
このユーザ名/パスワードは、ボールトのログインに失敗した場合、またはそれが存在しない場合、ユーザーは現在のVaultのユーザー名とパスワードを入力するためのライブラリがダイアログを提供します。
ユーザーのエントリがレジストリ(暗号化)の意味に保存されますこれは一度だけたびにVaultのユーザー名とパスワードの変更を入力する必要があります。
ない理想的なソリューションが、比較的ストレートフォワードおよび回避に十分に許容されなければならない。
あなたはどう思いますか?