2017-07-26 23 views
1

質問はそれをすべて言う - 私はProcessを作成していると私は、このプロセスへのコンストラクタのパラメータとしてProcessStartInfo.fileNameProcessStartInfo.ArgumentsProcessStartInfoオブジェクトを渡しています。mysqldump.exeは、それが引数で指定されていても、パスワードが必要です

ProcessStartInfo.fileName私は自分のプロジェクトフォルダに既に含まれているmysql.exeを使用しています。

私のProcessStartInfo.Arguments文字列は次のようになります。

-h localhost --port=3306 -u pete -p 1234 db1 -r C:\\Users\\Pete\\Databases\\localhost_db1.sql 

私がプロセスを開始するとき、コンソールは入力するパスワードを尋ねます - 問題は私がそれを再入力したくないということです。認証とダンプの両方を1つのステップで実行する必要がありますか?

私は.NETCoreApp 1.1フレームワークでVisual Studio 2017 Enterpriseを使用しています。

EDIT: パスワードを使用していないときは、すべて正常に動作します。 .sql-Fileは で作成され、データベースは正常にダンプされました。

+0

-pとパスワードの間のスペースを削除してください。 –

+0

ああ神 - それは簡単だろうとは思わなかった..ありがとう! パスワードを引数行に入れても安全ではないという警告が表示されますが、結局は問題ではありません - 少なくとも私のプロジェクトでは;-) –

答えて

0

MySQLやMongodbなどのデータセットを使用するアプリケーションをプログラミングする場合は、パスワードをプレーンテキストで保存することは決してありません。パスワードを隠すために隠されたテキストボックスを目を引くか、パスワードを保持するようにコンパイルしたときにプロジェクト内のファイルを使用するかのどちらかを選択する必要があります。

"-p"パラメータを使用すると、 "-u"と同じパスワードを入力すると仮定します。代わりに--usernameと--passwordを使って接続するユーザ名とパスワードを設定してみてください。

+0

ええ、あなたはお勧めしました - 私はちょっと実験しています。アドバイスをいただきありがとうございます、私はそれを私の議論に使用します! –

+0

お待ちしております! – Holy

0

そうではないかもしれませんな。もちろん、

-p1234

は次のようにパスワードを入れて、それを削除してみ-pと実際のパスワードの間にスペースがあってはなりません最も安全なオプション!

関連する問題