Я пытаюсь настроить внутренний веб-сайт, который будет связываться с другой серверной службой в сети от имени пользователя с помощью HttpWebRequest. Мне нужно использовать встроенную проверку подлинности Windows в приложении ASP.NET, поскольку серверная система поддерживает только этот тип проверки подлинности.
Я могу настроить IWA в приложении ASP.NET, и оно использует Kerberos, как я и ожидал. Однако, когда аутентификация делегируется серверной системе, она больше не работает. Это связано с тем, что бэкэнд-система поддерживает только Kerberos IWA, но делегирование по какой-то причине - даже если входящий запрос аутентифицирован Kerberos - преобразует аутентификацию в NTLM перед перенаправлением в бэкэнд-систему.
Кто-нибудь знает, что мне нужно сделать в приложении ASP.NET, чтобы оно могло пересылать удостоверение с помощью kerberos?
Я пробовал следующее, но похоже, что это не работает
CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(request.RequestUri, "Negotiate", CredentialCache.DefaultCredentials.GetCredential(request.RequestUri, "Kerberos"));
request.Credentials = credentialCache;
Я также пытался установить «Kerberos» там, где теперь написано «Negotiate», но, похоже, это мало что дает.