我们最初通过表单提交登录凭据。现在我们尝试通过使用C#以编程方式使用HttpWebRequest
通过HTTP POST提交相同的登录信号来模仿相同的行为。
我们知道我们正在正确发送数据,并且网络服务正在顺利接收和验证登录数据。
但问题是,当我们使用表单进行登录时,Web服务会在成功时自动重定向用户。在使用HttpWebRequest
时,我们似乎无法以某种方式复制,因为用户和请求存在于两个不同的会话中(我认为)。
在使用 HttpWebRequest
时,如何在成功验证时执行重定向行为?当我们手动重定向时,我们会被视为不是认证
为了便于说明,我的请求代码与以下内容类似:
// var data = some byte[] data
var request =
(HttpWebRequest)WebRequest.Create("http://domain.com/login.asp");
request.ContentType = "x-www-form-urlencoded";
request.ContentLength = data.Length;
request.Method = "POST";
using (var stream = request.GetRequestStream()) {
stream.Write(data, 0, data.Length);
stream.Close();
}
var response = (HttpWebResponse)request.GetResponse();
我将其作为ASP.NET MVC 3项目进行了解决,因此这些代码或多或少会出现在控制器操作中。