如何设置安全标志上的ASP.NET会话Cookie?(How can I set the Secur

2019-07-18 11:20发布

如何设置上的ASP.NET会话Cookie安全标志,所以,它只会通过HTTPS,从来没有过纯HTTP传输?

Answer 1:

有两种方式,一种httpCookies在元素web.config允许你打开requireSSL只发送所有Cookie,包括SSL仅也在里面窗体身份验证会话,但如果你打开SSL上httpcookies你还必须打开它的内部形式配置了。

编辑为清楚:把这个<system.web>

<httpCookies requireSSL="true" />


Answer 2:

<system.web>元素,添加以下元素:

<httpCookies requireSSL="true" />

但是,如果你有一个<forms>在你的元素system.web\authentication块,那么这将覆盖在设定httpCookies ,设回默认false

在这种情况下,您需要将添加requireSSL="true"属性的表单元素为好。

所以,你将结束:

<system.web>
    <authentication mode="Forms">
        <forms requireSSL="true">
            <!-- forms content -->
        </forms>
    </authentication>
</system.web>

见这里和这里的这些元素的MSDN文档。



Answer 3:

事情变得复杂很快,如果你是在企业环境中谈论签入的代码。 我们发现,最好的办法是让web.Release.config包含以下内容:

<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
  <authentication>
      <forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
  </authentication>
</system.web>

这样一来,开发商不会受到影响(在调试运行),并且只有获得发布版本服务器都需要cookies来使用SSL。



Answer 4:

安全 - 这个属性告诉浏览器是否正在通过安全信道发送诸如HTTPS请求仅发送cookie。 这将有助于保护该cookie被传递通过未加密的请求。 如果应用程序可以通过HTTP和HTTPS访问,则存在该cookie可以以明文形式发送的潜力。



文章来源: How can I set the Secure flag on an ASP.NET Session Cookie?