asp.net - 如何仅以编程方式启动 ASP.NET cookie 会话?
问题描述
有没有办法强制Set-Cookie
仅在满足某些条件时才启动基于 ASP.NET(.NET Framework 4.8、MVC 5)的基于 cookie 的会话(将 HTTP 标头发送到客户端)。
问题的背景是关于欧盟的数据隐私法。在允许应用程序(网站)操作(初始化、发送、接收)此类数据之前,用户已经/应该明确允许使用 cookie。但是,这个问题仅与技术实现有关。不是关于法规或其他方式的意见或“事实”。
这些网站在没有 cookie(或用户标识)的情况下运行良好。但是,有一个特殊区域需要使用 cookie。只有当用户同意 cookie(用户同意)并进入特殊区域(登录页面)时,用户才会收到 cookie。另一方面,当用户的浏览器向 ASP.NET 应用程序发送 cookie 时,应用程序应该能够处理它。
我如何限制发送Set-Cookie
HTTP 标头仅在以编程方式“允许”时发送(例如,用户已同意并在登录页面上)。
解决方案
在这种情况下,这取决于您对 ASP.NET 的含义(我知道,命名很糟糕)。
ASP.NET Core MVC 2.1 对此提供了支持,作为一项功能,其中内置了同意的概念,您可以将 cookie 标记为必要或非必要,然后,如果不存在同意,非必要 cookie 将永远不会写出回复。MVC 模板已内置此功能,并附有示例代码。
对于其他版本的 ASP.NET(以前版本的 Core MVC、非 Core MVC 或 WebForms),没有内置任何内容,您必须自己滚动。
推荐阅读
- deeplearning4j - java.lang.UnsatisfiedLinkError:java.library.path 中没有 jnind4jcpu
- visual-studio-code - 我们在哪里可以获得 ZIP 格式的旧版本 VSCode(如 1.25)?
- excel-formula - MS Excel - 删除所有空格然后比较两个单元格
- android - 按钮没有在 CardView 上方移动
- java - 如何在Java中使用泛型模板对数组求和而不会出现错误的操作数类型错误
- c# - 起订量和设置数据库上下文
- java - 在 java 中添加 UnsignedInteger 并继续获得 Method call Expected
- java - 将外键作为模型中的主键
- azure - 从自定义终结点读取 Azure IoT 中心消息
- assembly - %ebx 寄存器的操作码