我在我的Web.Config和Glbal.asax.cs文件中包含了以下代码行,但是当我在浏览器中使用开发人员工具时,我没有为以下 cookie 设置安全标志。还在我的 IIS 中配置了 SSLSettings(选中的复选框 requireSSL)。
我想为所有 cookie 设置安全属性,不仅是接收到的,而且是发送的 cookie。
在Web.config:
<httpCookies requireSSL="true"/>
在Global.asax.cs:
protected void Application_EndRequest(object sender, EventArgs e)
{
if (Request.IsSecureConnection == true && HttpContext.Current.Request.Url.Scheme == "https")
{
Request.Cookies["ASP.NET_SessionID"].Secure = true;
if (Request.Cookies.Count > 0)
{
foreach (string s in Request.Cookies.AllKeys)
{
Request.Cookies[s].Secure = true;
}
}
Response.Cookies["ASP.NET_SessionID"].Secure = true;
if (Response.Cookies.Count > 0)
{
foreach (string s in Response.Cookies.AllKeys)
{
Response.Cookies[s].Secure = true;
}
}
}
}
然后我在本地机器上的 IIS 7.5 上托管了我的应用程序。并在 SSL 设置中启用了 RequireSSL 选项。当我单击浏览 *.443(https) 时,我可以看到 localhost 使用 HTTPS 运行,但是当我在浏览器中检查 cookie 属性时,未设置安全标志。
我在这里缺少任何配置吗?
