いいえ。ただし、「統合」パイプラインでは、Windows 認証ユーザーを手動で偽装する必要があります。少なくとも IIS8.5 では、つまり。
なんで? 従来のなりすましは、.NET の非同期機能を壊します。具体的には、複数のユーザーが同時に使用しているスレッドの WindowsIdentity を管理するのは困難です。
どのように? たとえば、WindowsImpersonationContext を使用します。
// Start with identity assigned by IIS Application Pool
var current = System.Security.Principal.WindowsIdentity.GetCurrent();
// Enable Windows Authentication in ASP.NET *and* IIS, which ensures
// User.Identity is a WindowsIdentity
WindowsIdentity clientId = (WindowsIdentity)User.Identity;
// When 'using' block ends, the thread reverts back to previous Windows identity,
// because under the hood WindowsImpersonationContext.Undo() is called by Dispose()
using (WindowsImpersonationContext wic = clientId.Impersonate())
{
// WindowsIdentity will have changed to match clientId
current = System.Security.Principal.WindowsIdentity.GetCurrent();
}
// Back to the original identity
current = System.Security.Principal.WindowsIdentity.GetCurrent();
問題? 場合によっては、偽装の代わりに委任を使用する必要があります。