Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从c#代码登录到ajax网页_C#_Html_Ajax_Web - Fatal编程技术网

从c#代码登录到ajax网页

从c#代码登录到ajax网页,c#,html,ajax,web,C#,Html,Ajax,Web,我正试图通过c#代码使用用户名+密码登录一个站点。 我发现它使用Ajax进行身份验证 我应该如何实现这种登录? 网页中的元素似乎没有“id” 我试图用HtmlAgilityPack实现它,但我认为这不是正确的方向。。。 我无法模拟单击按钮,因为我找不到按钮的“id” if (tableNode.Attributes["class"].Value == "loginTable") { var userInputNode = tableNode.SelectSingle

我正试图通过c#代码使用用户名+密码登录一个站点。 我发现它使用Ajax进行身份验证

我应该如何实现这种登录? 网页中的元素似乎没有“id”

我试图用HtmlAgilityPack实现它,但我认为这不是正确的方向。。。 我无法模拟单击按钮,因为我找不到按钮的“id”

if (tableNode.Attributes["class"].Value == "loginTable")
{   
    var userInputNode =
        tableNode.SelectSingleNode("//input[@data-logon-popup-form-user-name-input='true']");
    var passwordInputNode =
        tableNode.SelectSingleNode("//input[@data-logon-popup-form-password-input='true']");

    userInputNode.SetAttributeValue("value", "myemail@gmail.com");
    passwordInputNode.SetAttributeValue("value", "mypassword");

    var loginButton = tableNode.SelectSingleNode("//div[@data-logon-popup-form-submit-btn='true']");                
}

这个问题相当广泛,但我将在大致方向上帮助您:

  • 使用(F12)=>网络选项卡=>检查“保留日志”。另一种选择是
  • 手动登录并查看AJAX发送的请求。保存端点(URL)并保存请求正文(请求中包含用户名和密码的Json数据)
  • 直接在你的C#代码中发布,忘掉HtmlAgilityPack,除非你需要从页面中获取一些动态数据,但这种情况很少发生
  • 使用类似以下代码段的内容登录:
  • 现在您已登录。您通常在登录时从服务器接收一些数据,因此请保存这些数据并将其用于下一步要执行的任何操作。我猜它可能有一些SessionId或身份验证令牌,您未来的请求将需要这些令牌作为参数来证明您确实登录了