0

下面是我的索引控制器的示例。我想知道是否有更好、更可靠的方法来获取流量是否为 https。

  public ActionResult IndexTest1(string year)
    {
        var isSecure = 
           ControllerContext.RequestContext.HttpContext.Request.IsSecureConnection;
4

2 回答 2

9

您可以使用

var isSecure = Request.RequestUri.Scheme == Uri.UriSchemeHttps;

在控制器操作方法中。

于 2013-04-11T04:27:11.150 回答
0

Request.IsSecureConnection是确定是否通过 HTTPS 发出请求的正确方法。

来自 MSDN:

获取一个值,该值指示 HTTP 连接是否使用安全套接字(即 HTTPS)。

http://msdn.microsoft.com/en-us/library/system.web.httprequest.issecureconnection.aspx

编辑: IsSecureConnection 属性不能直接从 ApiController 的 Request 属性中获得。您需要访问 HttpContext 对象的实例并使用其 Request 属性。

如果您想从控制器操作中获取此值,则无需直接引用 HttpContext。您可以只使用: var isSecure = Request.IsSecureConnection; 其中 `Request` 是控制器 bar 类中的一个属性。
于 2013-04-11T01:17:00.157 回答