如何设置上的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?