.Net Core Cookie跨站点共享 会话保持

这里使用简单粗暴的方式,只为做个记录。

关键配置:

1
2
3
4
services.AddDataProtection()
    .SetApplicationName("appname")
    .DisableAutomaticKeyGeneration()
    .PersistKeysToFileSystem("keypath");

  注意:

appname:所有站点的ApplicationName值要保持一致

keypath:所有站点的密钥需要相同,这里指的是密钥存放的路径

 

做到以上两点一致,即可实现Cookie共享,当然,CookieName一样也是必须的。

 

DisableAutomaticKeyGeneration() 该方法表示不自动创建密钥,采用只读模式,然后指定密钥的路径。如果不使用该方法,系统在启动时会进行检测,如果没有便会自动创建,那么多站点下,每个站点都创建一个密钥,导致密钥不同,解密结果肯定不一样,那Cookie就无法跨站点,所以使用只读取模式,因此在启动和部署应该之前,要先生成密钥。至于如何生成密钥,此文中已提到,看你能否领悟 - -。

我们使用的大概原理就是:使用相同的密钥对Cookie进行加解密,任何一个站点当然能都能识别。

深入的学习,请看文章中给出的文献参考链接,比如修改加密方式,指定密钥时效等。

 

参考文献:https://docs.microsoft.com/zh-cn/aspnet/core/security/data-protection/configuration/overview

  http://www.cnblogs.com/dudu/p/6495951.html

文章出处:http://www.cnblogs.com/anech/p/6873604.html

posted @   anech  阅读(1492)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示