【问题标题】:Automatically enter username and password using asp.net使用asp.net自动输入用户名和密码
【发布时间】:2013-01-14 05:44:36
【问题描述】:

我正在使用带有某些参数的 http post 访问 url,并且在单击 url 时会出现一个框,要求输入用户名和密码。现在我将网址粘贴到浏览器中,并在输入时要求输入用户名和密码。

当我知道如何向 url 发送请求但我想知道如何使用代码自动输入用户名和密码时,我想使用 asp.net 执行此操作。谢谢你

【问题讨论】:

  • 不保证也不安全,但您可以使用SendKeys.Send 方法发送您的用户名、标签(专注于密码文本框)、密码,然后输入(提交)。
  • 我真正想要的是获取网页响应并通过代码自动填写表格
  • 您使用的是 ASP.net FORMS 还是 ASP.net MVC。无论哪种方式,都可以设置文本框的值。在 MVC 中,您可以在视图中执行此操作,在 FORMS 中,您可以通过在页面内查找元素然后设置 .Text 属性来设置它。

标签: asp.net .net


【解决方案1】:

您要做的是使用用户名和密码向服务器发送 POST 请求。大多数服务器不会接受直接的身份验证请求,并且需要一些 Http 标头,例如 cookie,在其之前设置引用。

您可以使用fiddler 之类的工具来查看您的浏览器实际发送到服务器的内容。

这是一个将发布数据发送到服务器的小示例。

// create the POST request
var postParams = "user=userName&password=userPassword";
var webRequest = (HttpWebRequest)WebRequest.Create(yourUrl);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = postParams.Length;

// send POST data
using (StreamWriter sw = new StreamWriter(webRequest.GetRequestStream()))
{
    sw.Write(postParams);
}

EDIT:这是设置基本授权标头的最简单方法

webRequest.Credentials = new NetworkCredential("userName", "userPassword");

您提供的链接表明他们使用基本的 HTTP 身份验证。

【讨论】:

  • help.voxeo.com/go/help/evolution.sms.postapi 这就是我们在这里所做的,他们提到我们需要包含 http 授权标头,然后他们给出了 CURL 和 php 的示例来说明如何做到这一点。我正在尝试在.net 环境中做类似的事情,而不必使用 php
  • 我想使用asp而不是教程中提到的curl+ php设置http头
  • 为此您需要设置授权标头。或者更简单,只需设置凭据。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
  • 2015-04-29
  • 2019-11-02
  • 1970-01-01
相关资源
最近更新 更多