Windows 2003Server上にASP.NETWebサイトがあり、ネットワーク共有からファイルにアクセスする必要があります。ネットワーク共有はパスワードで保護されており、ユーザー名とパスワードを入力する必要があります。
私は、Windowsベースではなく、Webサイトでフォームベースの認証を使用しています。
したがって、私の問題は、以下のコードを使用してネットワーク共有からファイルを読み取ろうとすると、アクセスが拒否されたDirectoryInfo networkShare = new DirectoryInfo( "\\ TestServer \ Share");がスローされることです。
そこで、ネットワーク共有のユーザー名とパスワードを偽装関数呼び出しに提供して偽装を使用しようとしましたが、そのユーザー名がASP.NET Webサーバーに存在しないため、呼び出しは明らかに失敗します。そこで、Webサーバーに存在するログインのユーザー名とパスワードを渡したので、今回は偽装呼び出しは機能しますが、ネットワーク共有にアクセスできません。ネットワーク共有のユーザー名とパスワードが異なるためです。
最後に、ネットワーク共有と一致するまったく同じユーザー名/パスワードをWebサーバー上に作成しました。今回は偽装関数呼び出しが機能し、ネットワーク共有も機能します。共有から正常に読み取ることができます。
だから私の質問は、Webサーバーにユーザー名を追加せずにネットワーク共有を読み取る方法はありますか?「ネットワーク共有のログインが変更されるたびに、Webサーバーでも新しいユーザー名を作成する必要があります。これは理想的ではありません。
何か案は?