将提琴手与 Windows 身份验证一起使用

Posted

技术标签:

【中文标题】将提琴手与 Windows 身份验证一起使用【英文标题】:Using fiddler with Windows Authentication 【发布时间】:2011-04-09 21:05:01 【问题描述】:

我正在为我们的应用程序测试一些代理设置,但我需要测试一个需要 Windows 身份验证(或网络凭据)的代理。

为了测试,我将代理的凭据分配给网络凭据

System.Net.WebProxy proxy = new System.Net.WebProxy("127.0.0.1", 8888);
proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
//proxy.Credentials = new System.Net.NetworkCredential("1", "1");
System.Net.WebRequest.DefaultWebProxy = proxy;

目前,我使用启用了Require Proxy Authentication 规则的 Fiddler。如何配置 Fiddler,以便我可以使用 Windows 凭据而不是默认的“1”/“1”凭据?

【问题讨论】:

【参考方案1】:

在 Fiddler 4.6 中,我可以在 Composer -> Options 下打开“Automatically Authenticate”。然后成功调用了使用 Windows 身份验证在 IIS 中托管的我的 WebAPI。您可以在日志中看到单个呼叫的三个请求。

    HTTP/1.1 401 Unauthorized Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/10.0 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM

    HTTP/1.1 401 Unauthorized Content-Type: text/html; charset=us-ascii Server: Microsoft-HTTPAPI/2.0 WWW-Authenticate: Negotiate oYIBDTCCAQ... Date: Mon, 18 Jan 2016 09:38:22 GMT Content-Length: 341

    HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/10.0 X-AspNet-Version: 4.0.30319 Persistent-Auth: true WWW-Authenticate: Negotiate oRsw... Date: Mon, 18 Jan 2016 09:38:22 GMT Content-Length: 4

【讨论】:

这看起来很有希望。我不在合适的环境中进行测试,但很好的发现。【参考方案2】:

WebMarshal 是在 Windows 上运行的网络代理。它可以配置为使用基本身份验证和 NTLM 身份验证。你可以download a free trial。

【讨论】:

【参考方案3】:

使用 Fiddler 无法轻松做到这一点;您需要自己计算凭证质询,并在返回带有 Proxy-Authenticate: Negotiate 标头的 HTTP/407 响应后将质询添加到响应标头中。

相比之下,BASIC 身份验证很容易通过单个响应标头支持,这就是 Fiddler 的“需要代理身份验证”功能的工作原理。

【讨论】:

以上是关于将提琴手与 Windows 身份验证一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Web api Windows 身份验证与 Angular 应用程序一起使用 [重复]

401 未经授权的错误 web api mvc windows 身份验证

我可以将 html5 Websockets 与 Windows 域身份验证一起使用吗?

通过 Windows 远程桌面连接到 SQL 数据库:登录来自不受信任的域,不能与 WIndows 身份验证一起使用

将 SQL Server 身份验证与 localdb 一起使用

将特定域的 ASP.NET 模拟用户添加到 windows 身份验证