文章参考:https://davidchen93.blog.csdn.net/article/details/104844667?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant
解决的办法:
在提供授权登录的方法中,设置响应头信息;
Response.Headers.Add("Set-Cookie", $"uid={str}; SameSite=None; Secure=True;Path=/");
其中 uid为要共享的cookie名称,str为cookie的值。 同时设置SameSite属性为None;必须设置 Secure=True.
同时,提供授权的应用必须采用 https。 http无效。
完整方法示例:
public string Get(string callback) { Response.ContentType = "application/json"; Request.Cookies.TryGetValue("uid", out string str); var query = Newtonsoft.Json.JsonConvert.SerializeObject(new { code = str }); Response.Headers.Add("Set-Cookie", $"uid={str}; SameSite=None; Secure=True;Path=/"); return callback + "(" + query + ")"; }