2016-12-09 11 views
0

Windows 7にインストールするためにvb.net/c#でWindowsデスクトップアプリケーションを開発しています。デスクトップアプリケーションの管理者資格情報をコードでWindows 7に渡すには?

(私はこれにインターネットサービスを使用しません。2人のユーザーがいるデスクトップ用のスタンドアロンアプリケーションです。管理者と一般ユーザ)

私のアプリケーションは管理者権限を必要とするファイル/フォルダを読むことができるプログラムを作成したいと思います。

アプリケーションは通常のユーザーアカウントにインストールされますが、通常のユーザーは制限されたファイルの場所にアクセスできませんが、このアプリケーションはこれらのファイルを読み取ることができます。

ユーザーが管理者のファイル/フォルダにアクセスしようとしたときに資格情報を要求している場合は、以下のように、コードを使用して資格情報を渡します。

enter image description here

私はコードだけで資格情報(ユーザー名とパスワード)を送信することにより、コードをファイルやフォルダを読みたいです。

これを行う方法?

+0

これらのファイルを読み取るためのメカニズムをユーザーに提供している場合、ユーザーに関連ファイルへの読み取りアクセス権を与えるだけではどうですか?あなたは偽装で必要なことをすることができ、データ保護APIを使用してパスワードを安全に保管することができますが、それはもっと手間がかかります... –

+0

問題は、ユーザーがファイルをコピーまたは転送することです。これを使って私はreqだけを表示できます。データはすべてのものではありません。そのクライアントreq。 :) – bnil

+0

- その場合、偽装(一時的にprviilegedユーザーとして実行する)とDPAPI(パスワードを保護する):-) –

答えて

0

まず、プログラムでパスワードをハードコードすると、はセキュリティで保護されていないことに注意してください。パスワードは、コンパイルされた実行可能ファイルから抽出することができます。難読化者は、特定の攻撃者を遅らせることができますが、無期限に停止することはできません。

実際の質問に移動...保護されたファイルにアクセスするには、管理者またはその他の特権ユーザーアカウントとして実行するプログラムが必要です。私が過去に行ったことは、管理者の作業を行うように指示するコマンドライン引数を使用して、自分のアプリケーションの別のコピーを起動することです。動詞 "runas"は、管理者としてプログラムを実行することを意味します。必要に応じてWindowsがパスワードの入力を要求されます:

var startInfo = new ProcessStartInfo("myprogram.exe"); 
startInfo.Arguments = "do_admin_stuff"; 
startInfo.UseShellExecute = true; 
startInfo.Verb = "runas"; 
Process.Start(startInfo); 

あなたは他のどんな方法あなたのための最も簡単ですWCF、または一時ファイル、またはを使用して、元のプロセスに戻って情報を渡すことができます。

実際に特定のユーザー名とパスワードをアプリケーションにハードコードする場合は、別のユーザーとしてプロセスを開始するという解決策をthis similar questionに読んでみることができます。

+0

合計が合意に達しましたが、時には完了する必要があります。そのクライアントreq。 :)コードでユーザー名とパスワードを渡したいだけです。ユーザーはパスワードを知ってはいけません。コード内でどのような変更が必要ですか?私はrefを見た。私のアプリケーションでそのコードを追加しながら '.Username'プロパティを見つけることはできません。 – bnil

+0

私は前にrunas動詞のことをしていました。そして、それを(do_admin_stuffのような)コマンドライン引数チェックと組み合わせて、必要な場合にのみ管理者権限を持っていることを確認しました。魅力的なもの:-) – bradbury9

+0

OK ...しかし、ユーザー名とパスワードを渡さないと、プロンプトが表示され、ユーザーにパスワードを知らせたくないと思っています。それは背景にあるはずです。あなたのコードで '.username'プロパティを使いましたか?なぜなら、今私は見つけることができないからです。'ProcessStartInfo'の' username'プロパティ – bnil

関連する問題