以编程方式将用户名和密码发送到登录页面

本文关键字:登录 密码 方式 编程 用户 | 更新日期: 2023-09-27 17:54:39

我想使用asp.net将用户名和密码发布到远程网站的登录页面并通过它,以访问网站上需要登录的页面。换句话说,假设有一个网站上的页面,我要冲浪,从它抓取的东西,但登录之前需要。如何从asp.net应用程序调用登录页面并发布用户名和密码来传递它。

Thanks in advance

以编程方式将用户名和密码发送到登录页面

将它们作为查询字符串传递的注释仅适用于GET参数。这适用于POST。正如您所看到的,我使用表单条目username, passwordlogin(按钮),但在您的情况下,它可能是完全不同的值。因此,使用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方法,希望对

有帮助