繁体   English   中英

.Net 应用程序中未将安全标志设置为 Cookies

[英]Secure flag not set to Cookies in .Net application

我在我的 Web.Config 和 Global.asax.cs 文件中包含了以下代码行。 仍然当我在浏览器中使用开发人员工具时,我可以看到安全标志未设置为下面的 Cookie。

还在我的 IIS 中配置了 SSLSettings(选中的复选框需要 SSL)。

我想为所有 Cookie 设置 Secure 属性,不仅要接收,还要设置发送的 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;
            }
        }
    }
}

在浏览器中: 在此处输入图片说明

有两种方法,web.config 中的一个 httpCookies 元素允许您打开 requireSSL,它只传输所有 cookie,包括仅在 SSL 中的会话以及表单认证,但是如果您在 httpcookies 上打开 SSL,您也必须在表单内部打开它配置也是。

<form>
<httpCookies requireSSL="true" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM