Suplantación y credencial de red
Necesito pasar unNetworkCredential
Objeto con las credenciales del usuario suplantado actualmente a un servicio web desde una aplicación asp.net.
Mi código se ve así:
WindowsIdentity windowsIdentity = HttpContext.Current.User.Identity as WindowsIdentity;
WindowsImpersonationContext context = windowsIdentity.Impersonate();
try {
var client = GetClient();
client.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
Log("WindowsIdentity = {0}", windowsIdentity.Name);
Log("DefaultNetworkCredentials = {0}", CredentialCache.DefaultNetworkCredentials.UserName);
client.DoSomething();
} finally {
context.Undo();
}
Había entendido queCredentialCache.DefaultNetworkCredentials
Debe proporcionar las credenciales del usuario suplantado actualmente, pero no es el caso.
Los mensajes de registro que recibo son
WindowsIdentity = TESTDOMAIN\TESTUSER
DefaultNetworkCredentials =
¿Estoy haciendo algo mal? Si es así, ¿cómo se obtiene un objeto NetworkCredential para el usuario suplantado actualmente?