我正在尝试在C#中使用基于DOS的快速应用程序,以帮助我完成我必须经常在网站上执行的一些tedius任务。我需要访问的其中一个页面要求您登录才能查看源代码。这不应该是一个问题,我有一个有效的用户名和密码。我在这里找到了这个问题:
告诉我如何将POST请求发送到特定URL并从标题中检索cookie以备将来使用任何需要我登录的页面。
如果不是因为登录页面上的POST表单比“用户名”和“密码”字段稍微复杂一点,这将很有效。看一下它有一个javascript函数的“OnSubmit”调用,它接受用户名和密码并将它们加密成某种散列(可能是md5加上一些额外的位和bobs)然后将它们保存在其他隐藏的字段中。登录表单。
我原以为可能以某种方式从C#运行javascript函数?如果我可以检索HTML文件(包含JS),然后使用C#运行该JS函数,然后从JS有效发送的POST请求中检索cookie。更复杂的可能在于我不确定JS函数是存储在本地还是通过标记链接。
答案 0 :(得分:3)
该网站听起来像是在做一些不错的事情,例如:哈希密码而不是以明文形式发送。
我说你有三个基本选择。您可以简单地使用WebBrowser
控件而不是使用HttpWebRequest
,并让网站以预期的方式工作。您的代码只需填写表单并单击“提交”按钮即可。
你可以尝试在你的应用程序中运行javascript,尽管这些工具似乎已经过时或者过时了。在过去搜索SO以获取有关此问题的讨论,例如this one.
如果这真的值得你,你可以在C#中复制javascript的功能,并自己完成所有工作,只需在发布之前填充最后的字段。像哈希函数那样转换算法程序可能并不是很困难。很可能它是标准的SHA算法,无论如何已经是.NET的一部分。如果网站上的内容发生变化,您将来可能会遇到问题。
除非你真的需要一个超级干净的解决方案,否则我只需要使用WebBrowser
控件让网站自行完成。