0

マップされたネットワーク ドライブを C# コードから開きたいのですが、パスワードで保護されているため、直接開こうとすると例外がスローされます。このドライブを開くときに、誰かがユーザー名とパスワードを提供することに光を当てることができますか? 例外の詳細:

at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)

電話してるだけSystem.Diagnostics.Process.Start("Z:")

4

2 に答える 2

2

Z: はファイル名ではありません。[編集: パスワードで保護されていなくても問題ありません。コードを実行してみて、うまくいきました]

ユーザー名とパスワードを設定できるように、ProcessStartInfoオブジェクトをパラメーターとして使用してみてください。

そして、ここから FileName パラメータについて:

ファイル名は任意のアプリケーションまたはドキュメントです。ドキュメントは、関連付けられた開くアクションまたは既定のアクションを持つ任意のファイル タイプとして定義されます。オペレーティング システムから利用できる [フォルダ オプション] ダイアログ ボックスを使用して、コンピュータに登録されているファイルの種類とそれに関連付けられているアプリケーションを表示できます。[詳細] ボタンをクリックすると、特定の登録済みファイル タイプに関連付けられた開くアクションがあるかどうかを示すダイアログ ボックスが表示されます。

于 2010-06-15T07:19:27.320 に答える
0

おそらく、代わりに「z ドライブ」が指すことになっている UNC パスを開くことを検討するかもしれません。PC ユーザーは Z: を切断して、好きなパスに置き換えることができることを思い出してください...

「直接起動」と「このドライブを開く」の意味が完全には明確ではありませんが、コード スニップが示すように、ドライブのフォルダーのエクスプローラーを起動しようとしている場合は、ProcessStartInfo資格情報を提供するメカニズムとして を使用できます。

その共有上のファイルにプログラムでアクセスしようとしている場合は、偽装という用語を調べて、別の資格情報でファイル アクセス コード ブロックを実行することができます。この資格情報を使用したリモートの信頼されていないドメインからの共有ファイル (UNC) へのアクセスは、特に有望に見えます。

事前に指定された資格情報を使用して実際にネットワーク ドライブを作成しようとしている場合は、ここに別の解決策があります - https://serverfault.com/questions/47005/specifying-username-pass-as-part-of-a-unc -path-or-map-network-drives-for-a-window/47008#47008 (後で切断することを忘れないでください)。

于 2010-06-15T07:46:40.327 に答える