.net - 通过安全连接(SSL、https)登录网站的简便方法?

标签 .net ssl https indy sharpdevelop

我正在尝试使用 Borland Builder 6 和 Indy 10.6 通过安全连接登录网站,但我输了。该网站返回给我的页面与我预期的不同,因为我发布的数据可能不正确,或者可能缺少某些 cookie。有没有办法查看我发布的实际数据? 或者,我可以使用 SharpDevelop 和所有 .Net 函数。有没有一种简单的方法来处理服务器和脚本生成的所有 cookie 和 javascript 变量?我在想的是,如果有任何浏览器组件或其他东西可以下载登录页面并准备好所有必需的数据(隐藏输入等)并允许我输入我的数据(用户名/密码)并获得网络许可网站页面。或者下载登录页面,编辑源代码以填写用户名/密码,然后将所有内容发回(就像我按下提交按钮一样)。

谢谢, 尼克

最佳答案

您可以分配 TIdLog...组件,例如 TIdLogFileTIdLogEvent , 至 TIdHTTP.Intercept属性(property)。这将向您显示 TIdHTTP 的原始 HTTP 数据。正在与服务器交换。消息在加密前和解密后记录,因此即使使用 SSL,您也会看到未加密的 HTTP 消息。您可以使用 Fiddler 查看真实的 Web 浏览器如何与服务器通信,然后将其与 TIdHTTP 进行比较对话。

通常,当您需要使用 TIdHTTP 自动进行 Web 登录时,您必须模仿网络浏览器中的用户会做什么。访问起始页面,让服务器在需要时重定向您,让服务器发送它需要的任何 cookie,然后您可以解析登录表单 HTML 以获取所需的任何字段值,然后使用 TStringList 提交它们或 TIdMultipartFormDataStream ,取决于网络表单本身的设置。等等。

还有一点要记住,有些服务器对 User-Agent 很敏感。请求 header ,发送针对特定 Web 浏览器定制的不同响应。所以你可以尝试设置 TIdHTTP.Request.UserAgent属性设置为模仿主要 Web 浏览器之一的不同值。

关于.net - 通过安全连接(SSL、https)登录网站的简便方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522039/

相关文章:

c# - 为 RSS 加载 XDocument 时出现 MonoDroid ObjectDisposedException

vb.net - 验证服务器证书 - ServerCertificateValidationCallback

linux - 如何在 Debian 上创建 HTTPS 代理服务器

c# - HttpClient https 请求使用主机名失败,但使用 IP 地址有效

security - 强制使用Play框架登录Https进行登录

c# - Dapper 可以从数据库表创建模型类吗?

c# - java 的 -verbose :gc command line option 的 .NET 等价物是什么

c# - 使用更多结构?

security - 如果我们在负载均衡器而不是服务器上安装 SSL 证书,是否有任何安全风险?

ssl - 自签名证书中要包含哪个证书链文件?