我尝试使用POST和C#(或VB)登录到一个站点(不能提供URL,它只是内部网)。 我收到以下错误:
此系统需要使用HTTP cookie来验证授权 信息。我们的系统检测到您的浏览器已禁用 HTTP cookie,或不支持它们。请参阅“帮助”页面 在浏览器中获取有关如何正确配置的更多信息 您的浏览器用于此系统。
我使用以下代码:
var cookies = new CookieContainer();
ServicePointManager.Expect100Continue = false;
var request = (HttpWebRequest)WebRequest.Create("http://.......");
request.CookieContainer = cookies;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
writer.Write("user=XX&pass=XX");
}
using (var responseStream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
var result = reader.ReadToEnd();
Console.WriteLine(result);
}
我该如何解决这个问题?
答案 0 :(得分:0)
我该如何解决这个问题?
查看合法流量并从代码中重播。我的猜测:登录页面设置一个cookie和/或一个隐藏的表单值,其中一个或两个都必须POST到登录页面。
所以:启动Fiddler,使用浏览器请求登录页面,登录,确认上述理论并从代码重建: