如何仅以编程方式启动ASP.NET cookie会话?

时间:2019-04-24 11:23:05

标签: asp.net session cookies

是否有一种方法可以强制仅在满足某些条件时才启动基于ASP.NET(.NET Framework 4.8,MVC 5)基于cookie的会话(将Set-Cookie HTTP标头发送到客户端)。

问题的背景与欧盟的数据隐私法有关。在允许应用程序(网站)操作(初始化,发送,接收)此类数据之前,用户已经/应该明确允许使用cookie。但是,这个问题只是关于技术实施的问题。并非关于法规或其他手段的观点或“事实”。

没有Cookie(或用户身份证明)的网站运行情况也很好。但是,有一个特殊区域需要cookie。仅当用户同意Cookie(用户同意)并进入特殊区域(登录页面)时,用户才应该收到cookie。另一方面,当用户的浏览器将cookie发送到ASP.NET应用程序时,该应用程序应该能够处理它。

我如何限制发送Set-Cookie HTTP标头,使其仅以编程方式“允许”发送(例如,用户已同意并在登录页面上)。

1 个答案:

答案 0 :(得分:1)

在这种情况下,这取决于您所说的ASP.NET(我知道,命名很糟糕)。

ASP.NET Core MVC 2.1具有对此功能的支持,该功能内置了同意的思想,您可以将cookie标记为必要或非必要,然后,如果没有同意,则为非必要。 Cookie永远不会写出响应。 MVC模板是内置的,它的示例代码为documented

对于其他版本的ASP.NET(Core MVC,非Core MVC或WebForms的先前版本),没有内置任何内容,您必须自己滚动它。