如何在ASP.NET会话Cookie上设置安全标志,以便它只通过HTTPS传输,而不是通过纯HTTP传输?
我有一个项目,我需要通过Web请求发送数据文件.我们需要设置双向身份验证,也称为相互身份验证.我们不确定是否需要特殊证书,但我们知道它需要达到3级.
我在查找此案例的示例代码时遇到问题.我不知道在哪里添加我们的证书信息.使用此代码Underlying connection is closed时,当我们尝试读取响应流并且ServicePointManager.ServerCertificateValidationCallback从未调用时会抛出错误.这是我有的:
ServicePointManager.ServerCertificateValidationCallback = New Security.RemoteCertificateValidationCallback(AddressOf MyCertValidationCb)
httpReq = CType(System.Net.HttpWebRequest.Create(url), HttpWebRequest)
For Each cert As String In certs
X509cert = X509Certificate2.CreateFromCertFile(cert)
X509cert2 = New X509Certificate2(X509cert)
httpReq.ClientCertificates.Add(X509cert2)
Next
httpReq.Method = "POST" ' Post method
httpReq.ContentType = "text/xml" ' content type
' Wrap the request stream with a text-based writer
writer = New StreamWriter(httpReq.GetRequestStream())
' Write the XML text into the stream
reader = New StreamReader(filename.Name)
ret = reader.ReadToEnd()
reader.Close()
' Send the data to …Run Code Online (Sandbox Code Playgroud) 即使客户端通过SSL与服务器通信,也可以嗅探URL吗?我问,因为我正在通过URL进行远程登录和重定向到物理上不同的服务器,并想知道通过SSL保护通信是否会阻止重放攻击等.
我们在 IIS 上有一个 ASP.NET 网站。我们有一个Lead Forensics链接。在切换到在所有页面上都要求 SSL 之前,它一直工作正常。它类似于:
<script type="text/javascript" src="http://lead-123.com/js/8303.js"></script>
Run Code Online (Sandbox Code Playgroud)
然而,由于需要 SSL,跟踪似乎不再有效。
显然这是由http从原始https页面链接的请求引起的。但以下两次尝试也失败了:
src="//lead-123.com/js/8303.js"
src="https://lead-123.com/js/8303.js"
访问跟踪脚本的 https URL 表明它正在被提供(尽管存在安全错误)。
我相信 Lead Forensics 已经考虑过这一点。有谁知道是否有任何可以以某种方式使用的约定或变通方法,以便不会在站点上报告安全错误并进行跟踪工作?我找不到任何关于此的文档,并且迄今为止尝试与他们联系还没有成功。
**
我不确定脚本是否托管在https链接上。(它仅在我成功收到来自http链接的响应后才在我的浏览器中响应)。尽管如此,我仍在寻找关于如何处理这种情况的约定,或者如果使用 SSL,是否提供单独的链接,或者该技术是否甚至能够通过 SSL 工作。