我需要将IIS应用程序池凭据作为网络凭据传递给.NET应用程序中的WebAPI调用。
var request = (HttpWebRequest)WebRequest.Create("WEB API URL");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = new NetworkCredential("USERNAME","PASSWORD","DOMAIN");
这很好用。
我的问题是,我需要将IIS应用程序池凭据作为NetworkCredential对象传递,而不是传递硬编码凭据。
我已经检查过以下代码,但对我不起作用。
WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
using (identity.Impersonate())
{
var request = (HttpWebRequest)WebRequest.Create("WEB API URL");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = CredentialCache.DefaultNetworkCredentials;
}
答案 0 :(得分:0)
这里我只能想到两个选项。
将您的身份验证类型更改为Windows身份验证
您经常可以通过项目进行更改。当您创建新项目时,它甚至会询问您是否要通过Windows身份验证对用户进行身份验证。
与Active Directory链接
某些组织/公司将使用Active Directory来管理其用户。这是允许您登录办公室中的特定计算机,或限制您使用单个工作站,或让IT管理员在您忘记等时重置密码的原因。这是一个了不起的工具,但是让您感到痛苦。我建议使用虚拟机使用虚拟机来实现这一目标。