.NetCore 使用Cookie

1、首先我们在Startup下面的ConfigureServices中注册授权认证服务以及AddCookie
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(opt => { opt.LoginPath = new PathString("/Home/Index/"); });

 

2、然后可以在需要使用cookie的地方添加
HttpContext.Response.Cookies.Append("getCookie", "setCookieValue");

 

3、然后我们需要使用的时候直接取出cookie的值
  
 var getCookie = "";
   HttpContext.Request.Cookies.TryGetValue("getCookie", out getCookie);

 

4、到这里都是可以成功的,然后我们清除浏览器缓存之后再来尝试这样来处理cookie。发现Append和TryGetValue都是没有值的。此时内心无比惆怅!
令我百思不得其解,Google了一些资料,发现一个解决方案,和Configure中的文件有关。。
原因是AspNetCore2.1 支持了2018年5月25号出台的 GDPR规范,该规范认为 cookie是用户的隐私数据,如果要使用的话,必须征得用户同意.我们可以把Configure中的
app.UseCookiePolicy();

 

这一行代码注释掉。然后我们再次试试,发现存取cookie都是正常的了。一切都变的那么舒适了...

你可能感兴趣的:(.NetCore 使用Cookie)