需要 Windows 安全性时下载文件的臭名昭著但未得到解决的问题

2023-12-19

有一个网站:http://site.domain.com http://site.domain.com它会通过“Windows 安全”对话框提示输入凭据。因此,我设法使用 WebBrowser 控件导航到该页面并发送击键来输入密码 - 我找不到其他方法。

现在,网站生成了一个指向我要下载的文件的链接,如下所示:http://site.domain.com/operations/reporting/csv/Report720_2553217.csv http://site.domain.com/operations/reporting/csv/Report720_2553217.csv

我尝试使用 WebClient 下载文件,但它什么也没做(br 是我的 WebBrowser 控件):

WebClient wb = new WebClient();
wb.Headers.Add( br.Document.Cookie);
wb.DownloadFile(link, @"report.csv");

我一直在尝试寻找可行的解决方案,但无济于事。我知道网络客户端未经过身份验证,因此尝试使用网络浏览器的 cookie,但它不起作用。该 cookie 如下所示:

TLTUID=61FE48D8F9B910F9E930F42D6A03EAA6; TLTSID=0B2B8EE82688102641B7E768807FA8B2; s_cc=真; s_sq=%5B%5BB%5D%5D; ASPSESSIONIDQQSTRDQS=FNPJCODCEMGFIDHFLKDBEMHO

所以我有两个问题:

  1. 如何允许 Web 客户端下载可从 Web 浏览器会话访问的文件。在上面的代码示例中我做错了什么?

  2. 有没有一种简单的方法可以仅使用 WebBrowser 下载该文件并将其保存到我选择的路径和文件名?或者如何使用 WebClient 或其他东西来完成这一切?


  1. 不可能,据我所知。WebClient and WebBrowser使用不同的层来访问网络。WebClient uses WinHTTP http://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx, WebBrowser uses UrlMon http://msdn.microsoft.com/en-us/library/ee318402%28v=vs.85%29.aspx。因此,它们将具有单独的会话(包括身份验证缓存)。

  2. 这是可能的,只需使用任何UrlMon http://msdn.microsoft.com/en-us/library/ee318402%28v=vs.85%29.aspx用于下载文件的 API,例如URLDownloadToFile or URLDownloadToCacheFile。我刚刚回答了一个类似的问题 https://stackoverflow.com/a/18995830/1768303.

顺便说一句,您不必输入击键来提供身份验证凭据。你可以实施身份验证Ex http://msdn.microsoft.com/en-us/library/cc709426%28v=vs.85%29.aspx on WebBrowser为此的站点对象。这是更多信息 https://stackoverflow.com/a/18619110/1768303.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要 Windows 安全性时下载文件的臭名昭著但未得到解决的问题 的相关文章

随机推荐

  • 复制整个目录但排除一些文件 php

    试图找到一种复制整个目录但排除某些文件的方法 在这种情况下只需要排除一个始终只包含 1 个 png 文件的目录 我想可以使用类似于此代码的内容 但绝对没有任何线索如何仅排除一个文件 function xcopy source dest pe
  • 堆地址范围内全局变量的地址

    我正在调试MPlayer 1 3 0源代码 我看到一个全局变量 其地址 由GDB甚至简单的打印 都在堆分配的范围内 而不是数据部分 我使用检查了堆范围procfs 555555554000 555555834000 r xp 0000000
  • Firefox VIEW SOURCE 显示登录页面

    我在 Arch Linux 上运行 Firefox 61 0 查看页面源代码时 当我浏览需要登录的网站时 我经常 但并非总是如此 估计有 20 的时间 会看到登录页面的源代码 当我浏览本地主机 每个页面的源代码都是在服务器上生成的 这不是操
  • 你能在 Python 中的核心类型上猴子修补方法吗?

    Ruby 可以向 Number 类和其他核心类型添加方法以获得如下效果 1 should equal 1 但Python似乎无法做到这一点 这是真的 如果是这样 为什么 这是否与以下事实有关 type不能修改吗 我不想讨论猴子修补的不同定义
  • 如何在 obj-c 中打印格式化的浮点数?

    如何打印float在 Objective C 中 例如 3 45代替3 45555555555 尝试像这样格式化浮动 NSLog 2f myFloat The 符号表示这将被下面的相应参数替换 myFloat The 2表示小数点后 2 位
  • 是否可以在 Artifactory 中重命名存储库?

    我们想引入一种命名约定 因为我们有大量的内部和外部存储库 因此我们希望让人们清楚什么是什么 添加这些存储库时 没有人预计事情会增长这么多 我想知道是否可以重命名存储库 我知道我可以创建新的并复制 移动其中的工件 但这看起来比我想要的要付出更
  • Automake:构建不被安装的共享模块

    如何告诉Automake构建一个不被安装的动态模块 pkglib LTLIBRARIES mywrapper la mywrapper la LDFLAGS no undefined module avoid version 导致 mywr
  • 如何在 C# 中保存随机生成器的状态? [复制]

    这个问题在这里已经有答案了 出于测试目的 我使用给定的种子创建随机数 即不基于当前时间 因此整个程序是确定性的 如果发生什么事情 我希望能够快速恢复到事件发生 不久之前 的点 因此我需要能够恢复System Random到之前的状态 有没有
  • Babel 对 Object.entries 的支持

    我正在看Object values Object entries 的第 3 阶段提案 https github com tc39 proposal object values entries我真的很想在我当前的 JavaScript 项目中
  • 过桥拼图

    晚上必须有四个人过桥 任何人过桥 无论是一个人还是两个人 都必须随身携带手电筒 必须用手电筒来回走动 每个人行走的速度不同 一个需要 1 分钟 另一个需要 2 分钟 另一个需要 5 分钟 最后 10 分钟 如果两个人一起穿过 他们必须以较慢
  • 将列表中连续出现的相同重复项目分组

    例如 我们有一个这样的列表 L item1 item2 item3 item3 item3 item1 item2 item4 item4 item4 我想将它们打包到以下形式的元组列表中 item1 1 item2 1 item3 3 i
  • 如何过期或重置地理位置

    当用户访问我的网站时 我会检查是否在 PHP 中设置了位置会话 如果没有设置与用户位置的会话 我将它们重定向到 www domain net location 在此页面上有许多选项供用户选择位置 如果浏览器允许 选项之一是使用浏览器进行设置
  • 为什么 `instance_of_object.foo is instance_of_object.foo` 的计算结果为 False? [复制]

    这个问题在这里已经有答案了 如果我有一个 class A def foo self pass 这评估为True getattr A foo is A foo 但这评估为False a A getattr a foo is a foo as
  • Android 自定义轮盘或老虎机实现

    我需要实现如图所示的类似轮子的控件 老虎机 但每个项目的边缘 项目之间的位置 需要平滑 以便它看起来像地球一样的球体 这是从 iPhone 库中获得的 iPhone 应用程序的屏幕截图 我想要安卓版的 我检查了 kankan 轮 Andro
  • 请帮助我解决VHDL编译错误[重复]

    这个问题在这里已经有答案了 library IEEE use IEEE std logic 1164 all entity doorlock is port reset in std logic enable in std logic pa
  • 如何处理 Node.js 中基于 Promise 的业务级函数中的错误返回对象?

    我需要创建一个名为 getLocationById 的业务级函数 它通过 REST API 从远程服务器检索一些数据 然后路由器调用该函数以在网页上显示数据 如果 fetch 调用成功 则将 json 结果作为 Promise 返回 但是
  • 无法在属性前面使用“d:”前缀来启用设计时数据

    我使用时遇到问题d 在 前面attributes 以在 XAML 设计器中显示它们
  • React警告滚动阻塞“touchstart”的非被动事件侦听器

    我有一个带有 Material ui Slider 的 React 组件 每次渲染此组件时 我都会收到此警告 向滚动阻塞 touchstart 事件添加了非被动事件侦听器 考虑将事件处理程序标记为 被动 以使页面响应更快 如何解决这个问题
  • 有没有办法设置全屏覆盖背景不透明度?

    我需要从视图组件内的按钮推送模态视图 但应该只覆盖屏幕高度的下半部分 上半部分是半透明背景 黑色 不透明度 30 在全屏覆盖视图构建器中设置最顶层视图的不透明度不起作用 任何帮助 将不胜感激 struct ContentView View
  • 需要 Windows 安全性时下载文件的臭名昭著但未得到解决的问题

    有一个网站 http site domain com http site domain com它会通过 Windows 安全 对话框提示输入凭据 因此 我设法使用 WebBrowser 控件导航到该页面并发送击键来输入密码 我找不到其他方法