Олицетворение и NetworkCredential

Я должен передать a NetworkCredential объект с учетными данными в настоящее время исполняемого роль пользователя к веб-сервису из приложения asp.net.
Мой код похож на это:

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

Я понял это CredentialCache.DefaultNetworkCredentials должен дать учетные данные в настоящее время исполняемого роль пользователя, но они не имеют место.
Сообщения журнала, которые я получаю,

WindowsIdentity = TESTDOMAIN\TESTUSER
DefaultNetworkCredentials = 

Я делаю что-то не так? Если так, как Вы получаете объект NetworkCredential для в настоящее время исполняемого роль пользователя?

9
задан Paolo Tedesco 14 January 2010 в 00:24
поделиться

2 ответа

Довольно длинная статья в MSDN, объясняющая возможности получения сетевых учетных данных в ASP:

Как: Использовать олицетворение и делегирование в ASP. NET 2.0

Еще одна статья в блоге на эту тему (хотя я не проверял, работает ли на самом деле решение:

.NET (C#) Impersonation with Network Credentials

4
ответ дан 3 November 2019 в 07:13
поделиться

Невозможно использовать ASP.NET Ambersonated User ( Current.user.identity ) Для сетевой аутентификации он работает только на месте.

1
ответ дан 3 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: