2011-04-19 47 views
0

我想在C#中打开一个基于DOS的快速应用程序来帮助我完成一些常需要在网站上执行的任务。我需要访问的其中一个页面需要您登录才能查看源代码。这不应该是一个问题,我有一个有效的用户名和密码。我在这里发现了这样一个问题:JavaScript用C#登录网站Http

Login to website, via C#

还告诉我,我怎么能发送POST请求到特定的URL,并检索与该要求我先登录任何网页以备将来使用头的cookie。

如果不是因为登录页面上的POST表单比单纯的“用户名”和“密码”字段稍微复杂一些,这将很好地工作。看一下表单,它有一个“OnSubmit”对javascript函数的调用,该函数接受用户名和密码,并将它们加密成某种散列(也许是md5加上一些额外的位和bobs),然后将它们保存在登录表单。

我在想这可能可以从C#运行javascript函数吗?如果我可以检索HTML文件(包含JS),然后使用C#运行该JS函数,然后从POST请求中检索该JS有效发送的cookie。更进一步的复杂性可能在于我不确定JS函数是存储在本地还是通过标记链接。

回答

3

该网站听起来像是在做一些很好的事情,例如,散列您的密码,而不是以明文形式发送。

我想说你有三个基本选择。您可以简单地使用WebBrowser控件而不是使用HttpWebRequest,并让网站按照预期的方式工作。您的代码可以填写表单并单击提交按钮。

您可以尝试在您的应用程序中运行JavaScript,尽管这些工具看起来不是过时就是可能。过去搜索SO进行讨论,例如this one.

如果这是真的值得你,你可以复制在C#中的JavaScript的功能,并完成所有的工作,你自己,在发布前刚刚填充的最后领域。像哈希函数那样转换算法程序可能不是很困难。很可能它是一个标准的SHA算法,它已经是.NET的一部分了。当然,如果网站上的事情发生变化,您将来可能会遇到问题。

除非您确实需要超级清洁解决方案,否则我只需使用WebBrowser控件并让该站点执行其操作。

+0

我使用了WebBrowser控件 - 很好地完成了这项工作。谢谢您的帮助。 – DrLazer 2011-05-23 11:51:09