首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET和ServicePointManager.SecurityProtocol

.NET和ServicePointManager.SecurityProtocol
EN

Stack Overflow用户
提问于 2017-08-21 06:20:20
回答 1查看 5.5K关注 0票数 1

我正在使用.net中的webclient类,并且我下载了一个站点。

代码语言:javascript
复制
Dim oWebClient As New WebClient()
Dim oDownloadedPage As String = oWebClient.DownloadString(<site>)

它抛出了一个身份验证错误,在稍微搜索了一下后,我发现我试图下载的站点必须禁用了TLS1.0

所以我把ServicePointManger改成了这样

代码语言:javascript
复制
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or 
   SecurityProtocolType.Tls12 Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls

我得到了同样的错误..所以我决定把它改成这样..

代码语言:javascript
复制
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or 
   SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12

看到我在那里做了什么了吗?我调换了顺序,然后它就起作用了。

有人能给我解释一下顺序有什么区别吗?为什么这很重要?我想知道如果我去下载一个TLS1.0站点,如果它会失败。

EN

回答 1

Stack Overflow用户

发布于 2020-06-16 07:29:06

代码语言:javascript
复制
System.Net.ServicePointManager.SecurityProtocol = DirectCast(3072, System.Net.SecurityProtocolType) 'TLS 1.2
Dim inStream As StreamReader
Dim webRequest As WebRequest
Dim webresponse As WebResponse
Dim cResult As String = ""
dim cURL as String="https://your.page.com"
webRequest = WebRequest.Create(cURL)
webresponse = webRequest.GetResponse()
inStream = New StreamReader(webresponse.GetResponseStream())
cResult = inStream.ReadToEnd()

这对我来说很有效!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45787281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档