Podszywanie się i poświadczenie sieciowe

Muszę przejśćNetworkCredential obiekt z poświadczeniami aktualnie personifikowanego użytkownika do usługi internetowej z aplikacji asp.net.
Mój kod wygląda tak:

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

Zrozumiałem toCredentialCache.DefaultNetworkCredentials powinien podawać poświadczenia aktualnie podszytego użytkownika, ale tak nie jest.
Otrzymane komunikaty dziennika są

WindowsIdentity = TESTDOMAIN\TESTUSER
DefaultNetworkCredentials = 

czy robię coś źle? Jeśli tak, jak uzyskać obiekt NetworkCredential dla aktualnie personifikowanego użytkownika?

questionAnswers(2)

yourAnswerToTheQuestion