ASP.NET中的安全Cookie不添加安全标志

时间:2017-09-06 07:23:29

标签: c# asp.net security cookies

我创建了一个asp.net项目   创建了一个新的HTTPCookie,我希望在我的连接安全时添加一个安全标志 以下是我的代码

var responseCookie = new HttpCookie(Test)
        {
            HttpOnly = true,
            Value = asdasdhoi234
        };
        if (FormsAuthentication.RequireSSL && Request.IsSecureConnection)
        {
            responseCookie.Secure = true;
        }
       Response.Cookies.Set(Test);

但是cookie仍然不安全,我不理解这个问题。

在我的httpsHeaders中,它仍然没有显示我的安全cookie 我的域名是https,但我的cookie仍然不安全。

enter image description here

1 个答案:

答案 0 :(得分:0)

new HttpCookie constructor将字符串作为参数。因此,我认为你的Test是一个字符串。您需要在实际cookie对象上设置Secure标志而不是字符串。试试这个:

var responseCookie = new HttpCookie(Test)
{
    HttpOnly = true,
    Value = "asdasdhoi234",
    Secure = FormsAuthentication.RequireSSL && Request.IsSecureConnection
};
Response.Cookies.Set(responseCookie);

另外,请确保您的web.config包含requireSSL属性设置为true,如docs中所述:

<authentication mode="Forms">
  <forms loginUrl="member_login.aspx"
    cookieless="UseCookies"
    requireSSL="true"
    path="/MyApplication" />
</authentication>