c# - 以编程方式登录网站

标签 c# .net asp.net httprequest

如何以编程方式登录网站?

我只想检查提供的网站用户名和密码是否正确。

谢谢。

最佳答案

从 .NET 执行此操作的最简单方法是 Watin .你会做这样的事情:

 using (var browser = new IE("http://mysite.com"))
 {
  browser.TextField(Find.ByName("email")).TypeText("my@email.com");
  browser.TextField(Find.ByName("password")).TypeText("password");
  browser.Button(Find.ByName("login")).Click();

  if (browser.ContainsText("Welcome my@email.com!"))
  {
    // Success
  } 
 }

要用 HttpWebRequest 做到这一点,你会:

var req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentLength = postContent.Length;
req.ContentType = "application/x-www-form-urlencoded";

using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
    streamWriter.Write(postContent);
}

using (var res = (HttpWebResponse)req.GetResponse())
{
  _status = res.StatusCode;
  using (var streamReader = new StreamReader(res.GetResponseStream()))
  {
    response = streamReader.ReadToEnd();
  }
}       

只需添加第三种方式,您还可以使用 WebClient:

var nvc = new NameValueCollection();
nvc.Add("email", "my@email.com");
nvc.Add("password", "password");

var wc = new WebClient();
byte[] responseArray = wc.UploadValues("http://mysite.com",nvc);
string responseText = Encoding.ASCII.GetString(responseArray));

关于c# - 以编程方式登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355752/

相关文章:

c# - 如何从 4 个复选框中选中任意 2 个复选框?

c# - 将 WPF 控件放入 Windows 窗体窗体?

c# - ASP.NET MVC 3 : IDepencyResolver is trying to get an implementation of IControllerFactory

c# - 使用 ienumerable<T> 实现 ienumerable

javascript - 如何实现 Tableau 可信身份验证?

c# - 运行 .NET Standard 1.6 库中包含的 xunit 测试

c# - IE7 上的 .aspx 页面 Response.BinaryWrite 图像

c# - DXT 纹理压缩?

asp.net - 如何以编程方式向 ASP.NET 页面对象中的 HTML 标记添加属性

asp.net - 在 JavaScript 中嵌入 ASP.NET 服务器代码