ASP.Net-跟踪状态和会话变量的当前最佳实践是什么?

ASP.Net-跟踪状态和会话变量的当前最佳实践是什么?,asp.net,cookies,cookieless,asp.net-authorization,asp.net-authentication,Asp.net,Cookies,Cookieless,Asp.net Authorization,Asp.net Authentication,我们正在创建一个新的面向消费者/公众的ASP.Net web应用程序。有两个问题: --使用cookie或无cookie表单身份验证 --如果我们决定根本不使用cookie,您将如何存储本应存储在cookie中的数据(客户ID、附属ID等)。ASP.Net身份验证框架是否跟踪类似CustomerID的内容 如果您正在进行身份验证,cookies是常用的方法。现在很少有人会关闭cookies,因为很多网站已经依赖cookies了 话虽如此,ASP.NET确实支持“无cookieless”身份验证。

我们正在创建一个新的面向消费者/公众的ASP.Net web应用程序。有两个问题:

--使用cookie或无cookie表单身份验证


--如果我们决定根本不使用cookie,您将如何存储本应存储在cookie中的数据(客户ID、附属ID等)。ASP.Net身份验证框架是否跟踪类似CustomerID的内容

如果您正在进行身份验证,cookies是常用的方法。现在很少有人会关闭cookies,因为很多网站已经依赖cookies了


话虽如此,ASP.NET确实支持“无cookieless”身份验证。基本上,它只是在URL上添加身份验证令牌作为参数。它解析所有出站URL,以确保它们也包含令牌信息。就我个人而言,我不会为此而烦恼,只会去要求饼干。在尝试使用无Cookie认证时,还有一些额外的麻烦(例如,它会使SEO变得更加困难,因为搜索引擎每次在页面上爬行时都会看到不同的URL)。

对于一个普通的web应用程序,没有充分的理由使用无Cookie认证——对cookies的恐惧大约在十年前就消失了

对于实际数据,会话对象通常是比单个cookie更好的选择-会话cookie是一个单独的值,它有效地为您提供了存储在服务器上的任何会话数据的密钥。在某些特殊情况下,使用会话会出现问题,例如在多服务器部署中,但在大多数应用程序中,使用会话是简单和适当的

标准表单身份验证系统确实跟踪用户名-通常,如果您不想在会话中保留任何内容,这足以从数据库中查找所需的任何数据