【发布时间】:2013-06-26 05:49:36
【问题描述】:
我的 asp.net 2.0 应用程序向另一个 URL 发出内部 https 请求,以在响应中获取有效的 cookie。
当我在 .Net 2.0 框架中对此进行测试时,不会返回任何 cookie,但是在 .Net 4 中它确实有效。响应中也不例外,但我的直觉是它与公司代理和 https 有关。除了升级到.Net 4.0(巨大的任务)之外,还有什么建议吗?
string ticketissuerURL = "https://Securesite";
ServicePointManager.Expect100Continue = false;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ticketissuerURL);
// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
request.KeepAlive = true;
request.AllowAutoRedirect = false;
request.PreAuthenticate = true;
// Pass in current credentials
request.UserAgent = "Mozilla/4.0 (Windows)";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
【问题讨论】:
-
响应(除了cookies)是否有效?
-
当您更改框架时,您是在简单地更改应用程序池的目标框架,还是对解决方案本身做一些事情?另外,您介意告诉我们您使用的是哪台服务器吗?
-
要复制问题,我可以简单地更改项目框架目标版本并在调试中运行。我使用的是 Windows 2008 服务器。
-
我认为这两个框架之间的请求肯定有一些不同,但由于是 ssl,我无法在环境中使用 Fiddler 进行确认。
-
你真的需要运行 fiddler 来解决这个问题。您可以为此使用内置于 fiddler 中的 HTTPS 拦截(它基本上会进行中间人“攻击”)。我用过,很简单。
标签: asp.net .net-4.0 proxy .net-2.0 httprequest