以编程方式将用户名和密码发送到登录页面
本文关键字:登录 密码 方式 编程 用户 | 更新日期: 2023-09-27 17:54:39
我想使用asp.net将用户名和密码发布到远程网站的登录页面并通过它,以访问网站上需要登录的页面。换句话说,假设有一个网站上的页面,我要冲浪,从它抓取的东西,但登录之前需要。如何从asp.net应用程序调用登录页面并发布用户名和密码来传递它。
Thanks in advance
将它们作为查询字符串传递的注释仅适用于GET
参数。这适用于POST
。正如您所看到的,我使用表单条目username
, password
和login
(按钮),但在您的情况下,它可能是完全不同的值。因此,使用Fiddler之类的工具来捕捉正常登录发送的值。当我做类似的事情时,我不得不使用cookie感知的web客户端,因为该服务使用cookie作为会话值。您尝试访问的服务可以使用查询会话字符串-这完全取决于服务。
我遇到的另一个问题是,当我这样做,我必须从html页面获取一个会话id,并发送它记录它。我没有包括这里的代码,但我有它,如果你需要它:)
var client = new CookieAwareWebClient();
client.Encoding = Encoding.UTF8;
// Post values
var values = new NameValueCollection();
values.Add("username", someusername);
values.Add("password", somepassword);
values.Add("login", "Login"); //The button
// Logging in
client.UploadValues(loginPageUrl, values); // You may verify the result. It works with https :)
// Download some secret page
var html= client.DownloadString(someurl);
CookieAwareWebClient
public class CookieAwareWebClient : WebClient
{
private CookieContainer cookieContainer = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = cookieContainer;
}
return request;
}
}
试着读一下-> http://www.terminally-incoherent.com/blog/2008/05/05/send-a-https-post-request-with-c/
如果你使用firefox -下载"tamper-data"answers"live http-headers"来查看哪些信息被传递到登录站点
使用live http-headers,您可以看到在POST
假设您想重定向到www.ABC.com
构造类似
的查询字符串http://abc.com/products.aspx?field1=value1&field2=value2
在另一个页面上获取这个值。但是建议使用POST方法,希望对