如何在ASP.NET会话Cookie上设置安全标志,以便它只通过HTTPS传输,而不是通过纯HTTP传输?
我有一组C#Selenium测试,需要删除一个设置了HttpOnly标志的cookie.
不幸的是,DefaultSelenium.GetCookie()和DefaultSelenium.DeleteCookie()命令无法访问cookie,因为它设置了HttpOnly标志.我已经通过手动删除标志来确认这一点,并检查对这些方法中的任何一个的后续调用是否能够愉快地操纵有问题的cookie.
有没有其他方法可以通过Selenium .NET客户端驱动程序执行此操作?
欢迎所有想法!
从我在线阅读的所有内容来看,像这样的 web.config 应该在 ASP.NET 2.0 中启用 HttpOnly cookie。然而,这是行不通的。
<configuration>
<system.web>
<httpCookies httpOnlyCookies="true" />
</system.web>
...
</configuration>
Run Code Online (Sandbox Code Playgroud)
还有什么我想念的吗?我看过很多关于这个主题的帖子,但 cookie 不会显示为 HttpOnly(或者安全,如果我将 requireSSL="true" 添加到标签中)。
我正在使用 IIS 7.0。
编辑:
我试图在根级别的 web.config 中设置它以覆盖所有 cookie。我正在查看 ASP 页面上 Firebug 中的 cookie,并且应该有绿色文本的“HttpOnly”部分说“HttpOnly”对于其中一些是空的。
例子:

我正在使用Entity Framework 6.0开发ASP.NET MVC服务器。据我所知,它已设置为与EF 4.5(<httpRuntime targetFramework="4.5" />)兼容。
我想确保会话cookie(即存储会话标识符的cookie)是HttpOnly,因为这是行业范围内的最佳做法,有助于防止跨站点请求伪造攻击。
问题是,它是由框架自动创建的,因此,我不能像其他所有cookie一样在调用构造函数后立即简单地更改对象的属性。
在中Web.config,我已经设置了<httpCookies httpOnlyCookies="true" />,但是-当我检索会话cookie时-它不是 HttpOnly(已设置了HttpCookie.HttpOnly属性false)。我也不知道该如何改变。
我找不到微软关于文档中的任何东西Web.config的<sessionState>,将改变这种状况。在Stack Overflow上,我只发现了一个四岁的问题,即默认情况下会话cookie如何为HttpOnly,这与我正好相反;还有一个为期五天的问题,为什么默认情况下会话cookie 不是 HttpOnly-对于某些无法解释的问题原因已经关闭-没有评论-与前者重复。
我知道我可以检索会话cookie,对其进行检查并HttpOnly=true在每个请求上进行设置(或者使用稍微更精致/ hackish的过滤器进行操作,或者在登录时手动进行设置,或者...),但是我不是沾满鲜血的野蛮人必须有适当的方法来做到这一点。
那么,如何将会话cookie设置为HttpOnly?
cookies ×3
asp.net ×2
c# ×2
asp.net-mvc ×1
httponly ×1
selenium-rc ×1
session ×1
ssl-security ×1