4

ASP.NET を使用してリモート サーバー上のテキスト ファイルにアクセスできません。ASP.NET 1.1 アプリケーションは、リクエスタの Windows 資格情報を使用した偽装を使用して Server 2003 で実行されています。クライアント、Web サーバー、およびリモート サーバーはすべて同じドメイン上にあり、ユーザーはテキスト ファイルにアクセスする権限を持っています。ユーザーは、UNC 共有を介して自分のマシンからテキスト ファイルを開くことができます。ユーザーがサーバーに直接ログインしてサイトを実行すると、正常に動作します。ただし、ユーザーが自分のマシンで試してみると、機能しません。これを機能させるには、偽装をどのように設定する必要がありますか?

編集: アプリの他の機能は正常に動作しますが、動作しないリモート ファイルにアクセスするだけです。

4

3 に答える 3

4

マルチホップの問題に直面しているようです。統合認証を使用すると、ブラウザーから IIS に対して認証を行うことができます。ただし、ドメイン上の他のマシンに対して認証することはできません。その理由は、標準の資格情報では、あなたが誰であるかを確認できないためです。


私がよく知っている主な回避策は 2 つあります。

  1. Kerberos を実装します。これらの証明書により、より高度な認証を行うことができ、複数のネットワーク ホップが可能になります。
  2. LogonUser win32 API を使用してユーザーを再偽装します (パスワードが必要です)。
于 2009-02-05T21:10:14.413 に答える
0

テストとして、impersonation タグにユーザー名とパスワードを指定して、ファイルへのアクセス権があることがわかっているユーザーとしてアプリケーションが常に偽装されるようにします。

アプリケーションがテキスト ファイルにアクセスできるようになった場合は、ユーザーの資格情報がサーバーに転送されていることがわかります。

アプリケーションがまだテキスト ファイルにアクセスできない場合、資格情報に問題はなく、サーバーの構成に問題があります。

于 2009-02-05T21:03:46.640 に答える
0

IIS では、匿名認証と基本認証の両方を、少なくともアプリケーション フォルダーでオフにする必要があります。ルート フォルダーだけでなく、アプリケーション フォルダー自体を確認することもできます。他の構成オプションがあるかもしれませんが、これは「簡単に達成できる」オプションです。

于 2009-02-05T20:52:49.067 に答える