我创建了一个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仍然不安全。
答案 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>