【问题标题】:Downloading files from 2 stage authentication protected server从 2 阶段身份验证保护服务器下载文件
【发布时间】:2014-11-06 14:20:42
【问题描述】:

我必须从对我正在尝试开发的 PowerPoint 插件进行 2 阶段身份验证的服务器下载一些文件。

首先,我通过浏览器登录工作区...

在那个浏览器中,我可以调用一个 .txt 文件,内容会显示在浏览器中 - 太好了!

在我的 PowerPoint 插件中,我有以下代码用于下载 PP 文件并打开它...

Globals.ThisAddIn.Application.Presentations.Open(@"https://workspace2.blahblah.com/group/corenarratives/Shared%20Documents/corenarratives/BlankPresentationTemplate.pptx");

这会下载 pptx 文件并完美打开它! - 太好了!

然后我尝试使用以下代码下载一个 .txt 文件:

WebClient wc = new WebClient();
wc.DownloadFile("https://workspace2.blahblah.com/group/corenarratives/Shared%20Documents/corenarratives/rts.txt", @"C:\trev\trev.txt");

并且文件内容包含一个html错误页面...

当我将 .txt 文件保存为 .html 文件并在浏览器中打开它时,它会将我重定向到工作区登录页面...

我不明白为什么 PowerPoint 文件打开而 .txt 文件没有打开?

如果可能的话,如何下载 .txt 文件?

有人可以帮忙吗?

谢谢

【问题讨论】:

  • “包含一个html错误页面”:错误页面是什么意思?
  • 一个页面说我将被重定向...当我在浏览器中打开它时,它会将我重定向到工作区登录页面
  • 所以你没有登录(据服务器所知)。可能它需要一个带有请求的登录 cookie。
  • 但这让我很困惑,打开 .pptx 文件效果很好..(?)

标签: c#


【解决方案1】:

可以发布一个我将其描述为“进行中”的答案吗?

我知道我在推特上真正了解他的东西。

不是亲密的朋友,而是我长期关注的人。他写了提琴手。

所以,我伸出脖子问他。

这是他说的。

“使用 Fiddler 观察每个场景的流量。PPT 是在发送 Cookie、Auth 标头还是您的代码需要发送的 User-Agent?”

“WebClient 不基于 WinINET/URLMon。PowerPoint 下载(通常)是,这意味着它获取 cookie、UA 字符串等。”

“PowerPoint 具有继承自 URLMon/WinINET 的 cookie 和自动身份验证行为。”

如果我理解正确的话,这解释了为什么 PowerPoint 可以下载文件..

我认为。

更新:

我最终实现了这个:

Is it possible to transfer authentication from Webbrowser to WebRequest

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 2022-09-23
    • 2019-02-16
    相关资源
    最近更新 更多