从控制台应用程序在 ASP.Net 表单授权网站上进行身份验证
Posted
技术标签:
【中文标题】从控制台应用程序在 ASP.Net 表单授权网站上进行身份验证【英文标题】:Authenticate on an ASP.Net Forms Authorization website from a console app 【发布时间】:2010-09-06 12:59:40 【问题描述】:我正在尝试构建一个 C# 控制台应用程序来自动从我们的网站抓取某些文件,主要是为了节省我自己的点击次数 - 坦率地说 - 只是为了完成它。但是我遇到了一个我无法找到有效解决方案的障碍。
我尝试连接的网站使用 ASP.Net 表单授权,但我不知道如何使用它来验证自己的身份。这个应用程序是一个完整的黑客,所以我可以硬编码我的用户名和密码或任何其他需要的身份验证信息,并且解决方案本身不需要是足够可行的东西来发布给一般用户。换句话说,如果唯一可能的解决方案是 hack,我可以接受。
基本上,我正在尝试使用 HttpWebRequest 来拉取具有文件列表的站点,遍历该列表,然后下载我需要的内容。因此,一旦我可以让网站认为我获得授权,网站上的实际工作就相当简单了。
【问题讨论】:
【参考方案1】:我也处理过类似的事情,最难的部分是弄清楚你究竟需要什么来“伪造”以获得授权。在我的情况下,它是授权到一些 Lotus Notes 网络服务,但细节并不重要,方法是一样的。
本质上,我们需要记录一个常规的用户会话。我会推荐 Fiddler http://www.fiddler2.com 但如果你使用的是 linux 或其他东西,那么你需要使用 wireshark 来解决一些问题。不知道有没有可以用的firefox插件。
无论如何,启动 IE,然后启动 Fiddler。完成登录过程。 停止你正在做的事情。切换到提琴手窗格,并详细检查记录的会话。它应该为您提供使用 WebRequests 伪造所需的确切信息。
【讨论】:
【参考方案2】:This page 应该可以帮助您入门。您需要首先向页面发出请求,然后将 cookie 保存到您包含在所有后续请求中的容器中。这应该让您保持登录状态,并能够检索文件。
【讨论】:
以上是关于从控制台应用程序在 ASP.Net 表单授权网站上进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 表单身份验证 + 授权属性 + 简单角色
Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量
asp.net mvc 2 - 当 RedirectToAction 使用 JSON 数据时失去授权