C# 有没有办法知道Https中是否有Https响应?

C# 有没有办法知道Https中是否有Https响应?,c#,.net,https,C#,.net,Https,在方法中,我需要知道响应是Http还是Https,以便重定向响应或进行二进制写入,但我只有一个HttpResponse In参数 有人知道是否有可能使用HttpResponse来了解这一点吗 谢谢 编辑: 我想知道是否有可能知道HttpResponse是HTTP还是HTTPS,因为如果可能的话,我宁愿不使用HttpContext.Current.Request。我不这么认为。您可以从中找到答案,但响应只是返回的与请求相关的数据流。这应该可以满足您的需要 System.Uri currentUrl

在方法中,我需要知道响应是Http还是Https,以便重定向响应或进行二进制写入,但我只有一个HttpResponse In参数

有人知道是否有可能使用HttpResponse来了解这一点吗

谢谢

编辑:


我想知道是否有可能知道HttpResponse是HTTP还是HTTPS,因为如果可能的话,我宁愿不使用HttpContext.Current.Request。

我不这么认为。您可以从中找到答案,但响应只是返回的与请求相关的数据流。

这应该可以满足您的需要

System.Uri currentUrl = System.Web.HttpContext.Current.Request.Url;

if (!currentUrl.Scheme.Equals(Uri.UriSchemeHttps, stringComparison.CurrentCultureIgnoreCase))
{
  //Do something here
}

无法从HttpResponse对象提取此信息,因为这是通过请求可能来自的同一通信协议发送回客户端的信息。您需要使用请求对象来检查SSL连接。

如果您使用的是IIS 7+,为什么不使用重写功能来处理http->https重定向。。。这将使您的代码保持良好状态,并且幸福地不知道该细节。您正在运行ASP.Net服务器端代码吗?尝试重新表述您的问题-很难说出来是关于什么的…@jonnyGold我不能,因为该方法的行为是由HTTPS定义的,并且网站必须处理HTTP和HTTPHTTPS@SLaks对但是我不认为这会改变HttpResponse类的可能性。有HttpRequest.IsSecureReconnection,但如果可能的话,我不喜欢使用HttpContext.Current.Request。避免HttpContext.Current.Request的原因是什么?只是避免修改大量代码。我知道这是个不好的理由。但是你让我觉得我没有尝试在我的方法中直接使用HttpContext.Current.Request。