【发布时间】:2018-06-29 10:27:02
【问题描述】:
我有一个 vb.net 工具,可以下载 *.从 SharePoint Server 压缩 文件。到目前为止,它在 SharePoint 2007 下工作。
在 SharePoint 2013 下,我不能再下载文件了。在 SharePoint 2013 下,用户必须通过浏览器中的此掩码身份验证端对自己进行身份验证。
这是适用于 SharePoint 2007 的旧解决方案
Dim WebIntranet As New WebClient
Dim strURL as String = "https://example.com/content/P123456/Documents/File.zip"
WebIntranet.UseDefaultCredentials = True
'Download the File from the Server
WebIntranet.DownloadFile(strURL,
"D:\Temp\File.zip ")
对于新的解决方案,它不起作用,我尝试了一些方法:
第一种方法:
Dim client As New WebClient
Dim _UserAgend As String = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"
Dim strURL as String = "https://example.com/content/P123456/Documents/File.zip"
client.Headers.Add(HttpRequestHeader.UserAgent, _UserAgend)
WebIntranet.DownloadFile(strURL,
"D:\Temp\File.zip ")
第二步:
Dim securedPassword As SecureString = New SecureString
Dim _UserAgend As String = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"
Dim username As String = "TestUser@Test.com"
Dim password As String = "123456"
client.Headers.Add(HttpRequestHeader.UserAgent, _UserAgend)
For Each c In password.ToCharArray()
securedPassword.AppendChar(c)
Next
client.Headers.Add(HttpRequestHeader.UserAgent, _UserAgend)
client.Credentials = New NetworkCredential(username, securedPassword) WebIntranet.DownloadFile(strURL,
"D:\Temp\File.zip ")
这两个 Approches 都不起作用,他们没有从 Sharepoint 下载文件。
他们只下载了 Authenticaton 端并将其命名为“File.zip”
欢迎任何帮助
来自下载的原始请求
【问题讨论】:
-
首先检查原始请求以查看您得到的响应。虽然是的,但我们知道需要身份验证。原始响应应提供有关所需内容的低级线索。
-
@Nkosi 好的,会这样做。我如何获得原始请求?
-
发出请求时可以使用 Fiddler 之类的东西来查看流量。
标签: .net vb.net sharepoint-2013 sharepoint-2007