繁体   English   中英

如何使用HttpWebRequest使用匿名NTLM对HTTP请求进行身份验证

[英]How to make HTTP request authenticated with anonymous NTLM using HttpWebRequest

我的团队最近发现在我们的一些服务代码中的错误,使得具有匿名NTLM SID验证的HTTP请求( 一样的HTTP匿名身份验证;这是导致匿名SID成功的NTLM身份验证交换)被允许应该被拒绝的时候继续 我们通过检查WindowsIdentity.IsAnonymous属性来修复问题,但是我想为这种情况编写一个自动化测试,所以我们再也没有遇到过这个问题。

这导致我的问题。 我需要使用HttpWebRequest或Microsoft.HttpClient向特定URL发出HTTP GET请求,该请求通过NTLM作为匿名SID进行身份验证。 到目前为止,我能够实现这一目标的唯一方法是将客户端代码作为LocalSystem运行; 出于显而易见的原因,这对我们的自动化测试制度来说并不理想。

我试过这个:

using (WindowsIdentity.GetAnonymous().Impersonate()) { 
    //Make HTTP request here, with UseDefaultCredentials = true
}

但是Impersonate抛出一个异常,表明匿名令牌不能被模拟。

还有其他想法吗?

我想你只需要将UseDefaultCredentials设置为false:

request.Credentials = null;
request.UseDefaultCredentials = false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM