L'usurpation d'identité et NetworkCredential

J'ai besoin de passer un NetworkCredential objet avec les informations d'identification de la actuellement à l'identité de l'utilisateur à un service web à partir d'un asp.net demande.

Mon code ressemble à ceci:

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();
}

J'avais compris que CredentialCache.DefaultNetworkCredentials doit donner les informations d'identification de la actuellement à l'identité de l'utilisateur, mais il n'est pas le cas.

Le journal des messages que je reçois sont

WindowsIdentity = TESTDOMAIN\TESTUSER
DefaultNetworkCredentials = 

Je fais quelque chose de mal? Si oui, comment voulez-vous obtenir un NetworkCredential objet pour l'identité de l'utilisateur?

N'est-ce pas une manifestation de la double-hop problème? blogs.msdn.com/knowledgecast/archive/2007/01/31/...
Oui, semble liée à la double-hop problème que le jeton secondaire, vous aurez en ASP ne vous donnera pas d'informations d'identification réseau.

OriginalL'auteur Paolo Tedesco | 2010-01-14