2

ASP.NETアプリケーションでは、WebClientを使用してファイルをダウンロードします。このファイルはほとんどの場合会社のイントラネット上にあり、アクセスするには許可が必要です。VSでアプリケーションを実行するときはいつでも、自分のアクセス許可のコンテキストで実行されているため、正常に動作します。ただし、IISに展開すると、「ネットワークサービス」のアクセス許可のコンテキストで実行されます。これは、イントラネットに関しては基本的に存在しません(予想どおり)。

私はここでいくつかの悪い解決策を見ることができます:

  • アプリケーション専用のアカウントを作成します。その詳細はweb.configにあり、文字列としてWebClientに提供されます。サービスのすべてのユーザーが同じ権限を持っているわけではないため、これは最適ではありません。
  • ユーザー名とパスワードを入力する必要があります。会社は可能な限り証明書を使用するため、これは決して承認されません。パスワードはWindowsへのログインに使用され、それ以降のほとんどすべてがKerberosを使用したWindows認証を使用します。

最適な解決策は、アクセスしている(およびKerberosを介してWindows認証データを提供している)現在のユーザーの資格情報をWebClientオブジェクトに直接渡すことです。これは可能ですか?もしそうなら、どのように?誰かが私に言うことができれば、あるいは少なくとも私の悲惨さから私を解放して、それができないと私に言うことができれば、私はとても感謝しています。

4

1 に答える 1

1

なりすましが最適な解決策であることが判明しました。ありがとう、JT。

Windows認証を偽装に結び付けるための優れたリソースはたくさんあります。私が実際には使用しなかったが、それ以来発見され、非常に包括的に見えるものは、ここから入手できます。

http://www.codeproject.com/Articles/94612/Windows-Authentication

私の場合、委任も必要でした。この人はそれをかなりよく説明し、それに関する有用なmsdnドキュメントにリンクしています。

http://blog.reveille.org.uk/2010/01/asp-net-impersonation-delegation-2/

于 2013-01-17T02:00:49.053 に答える