1

System.UnauthorizedAccessExceptionファイル システムから読み取ろうとすると、エラーが発生するアプリケーションがあります。

Network Serviceアプリ プールを調べたところ、それが ID に使用されていることがわかりました。IIS アプリケーションは、既存のアカウントを使用して匿名認証を許可しています。それを呼び出しましょうIUSR-MYSERVER。もIntegrated Windows authentication有効にしました。

Everyone問題のフォルダーに移動し、読み取り + 実行アクセス許可で追加すると、エラーはなくなります。IUSR-MYSERVERただし、または同じ権限を追加NETWORK SERVICEしても、同じエラーが発生します。

イベント ログのエラー エントリを見ると、ユーザーがN/A.

アプリケーションがファイル システムにアクセスしようとしているユーザーは? 単に使用するのは悪いと思いますEveryoneか?

4

1 に答える 1

0

Web アプリケーションが偽装を使用する場合、現在ログインしているユーザー (または匿名ユーザーの場合は IUSR) がファイルにアクセスします。統合 Windows 認証と IE を使用するとシングル サインオンになるため、ブラウザーを開くユーザーがファイルにアクセスします。 .

偽装を使用しない場合は、アプリケーション プール ID が使用されます。

コードで現在ログインしているユーザーを特定するには、System.Threading.Thread.CurrentPrincipal.Identity.Name- を使用しますが、これはファイルにアクセスしているアカウントを表すものではないことに注意してください。

コードが実行されている実際の ID を特定するには、 を使用しますSystem.Security.Principal.WindowsIdentity.GetCurrent().Name

于 2012-11-05T09:43:45.620 に答える