VB.NET プログラム内で、ファイル システムからファイルを読み取り、別の資格情報を使用して、それらのファイルの圧縮バージョンをリモートの安全なファイル共有に書き込みたいと考えています。
cmd プロンプトでの同様の操作は次のとおりです。
net use s: \\server\share /user:foo P@ssw0rd
copy a+b | compress > s:\foo.bin
net use s: /delete
これは可能ですか?どのように?(圧縮とファイル I/O について心配する必要はありません。私の関心はセキュリティ部分にあります。)
でやりWindowsImpersonationContext
ますか?
編集:そうです、私は本当にドライブをマップしたくありません。私がやりたいのは、デフォルトの資格情報ではない資格情報で共有にアクセスすることです。アプリはあらゆる種類のユーザーによって実行され、通常、共有への書き込みアクセス権はありません。この単一のファイルのために、ユーザーが共有に書き込めるようにしたいと考えています。
では、代替の資格情報を使用して、単一のファイルを共有に書き込むにはどうすればよいでしょうか? 圧縮への入力として機能するファイルを読み取るには、既定の資格情報または ID が必要であることに注意してください。
UserX reads files a1 and b1 as UserX, writes file c1 as UserA
UserY reads files a2 and b2 as UserY, writes file c2 as UserA
これは理にかなっていますか?
共有に直接ファイルを作成できることを知っています。問題は、代替資格情報を使用してそれを行う方法ですか? 共有を作成するときに代替資格情報を渡す方法を知っているので、共有を作成するというアイデアを紹介しました。共有は単一のファイルに対してのみ、プログラム内でのみ行われるため、実際には必要ありません。
そして、最初にファイルを作成してから、そのファイルを共有にコピーできることを知っています。それは大きなファイルであり、一度ストリーミングしたいので、私はそれをしたくありません。