在HttpWebRequest上使用HTTP POST时执行表单重定向

时间:2012-02-06 12:17:37

标签: c# post httpwebrequest

我们最初通过表单提交登录凭据。现在我们尝试通过使用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项目进行了解决,因此这些代码或多或少会出现在控制器操作中。

0 个答案:

没有答案