我正在尝试设置一个内部网站,该网站将使用 HttpWebRequest 代表用户联系网络中的另一个后端服务。我必须在 ASP.NET 应用程序上使用集成 Windows 身份验证,因为后端系统只支持这种类型的身份验证。
我能够在 ASP.NET 应用程序上设置 IWA,并且它使用了我期望的 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”设置为现在显示“协商”的位置,但它似乎没有多大作用。