ASP.NET标识 - 维护有关匿名用户的信息

时间:2016-09-21 10:49:44

标签: asp.net asp.net-mvc asp.net-identity

我只是在调查ASP.NET Identity,这似乎是目前ASP.NET应用程序中用户身份验证的最佳解决方案(取代过去的所有ASP.NET成员资格)。

我正在寻找一种能够维护匿名用户信息的解决方案。 即使用户未经过身份验证,我们也可以收集并存储用户经过身份验证后可以存储的大部分个人资料数据。

即使用户是匿名用户,也可以存储以下数据:

  • 购物车
  • 评论他写在网站上(以便他可以将其编辑为他们的创作者)
  • 各种网站偏好(他的首选语言和许多其他设置)

然后,当用户注册时,我们可以提供将部分数据复制到他的新用户配置文件中(或自动复制),具体取决于它是什么数据。

是否可以使用ASP.NET标识实现此方案?似乎当用户在ASP.NET标识中是匿名的时,他不能拥有任何用户个人资料数据。

为了使用相同的表来存储所有这些信息,对于经过身份验证的用户,我们可能需要在系统中为每个访问该站点的新访问者创建一个新用户,并执行一些需要存储某些用户的操作数据

之后,我们需要将一些cookie标识符传递给用户,以便我们始终可以将数据连接到用户,这可以被视为某种形式的身份验证(虽然对于实际用户是不可见的)。这样,访客用户实际上可以代表一个经过身份验证的系统用户(也许他只是一个特殊的角色?),即使他知道他是匿名的。

您如何看待这种方法? ASP.NET身份有什么方法可以帮助解决这个问题吗?

我发现了这两个相关的Stack Overflow问题,但我没有找到答案:

修改

我发现在ASP.NET中有一种称为 Anonymous Identification 的机制似乎可以解决部分问题。

https://msdn.microsoft.com/en-us/library/91ka2e6a(v=vs.85).aspx

也许它可以某种方式与ASP.NET身份集成?

Edit2 如评论中所述,匿名身份验证的文档似乎已经过时,很可能微软将来不会关注这一点。首选使用ASP.NET Identity或其他基于OWIN的解决方案的解决方案。

2 个答案:

答案 0 :(得分:0)

Asp.Net Identity没有这样的东西,即使通过他的浏览器中的hip IP或Cookie也无法识别匿名用户,您可以要求用户注册最少的信息或通过FB或Twitter注册使注册过程尽可能短,之后他可以完成他的个人资料,这样你就可以确保数据链接到实际的个人资料。

答案 1 :(得分:0)

ASP.NET 配置文件属性允许您的应用程序跟踪并永久存储特定于用户的信息。例如,用户可以指定邮政编码或喜欢的颜色方案,您的应用程序可以存储该信息并从应用程序的任何位置检索它。 ASP.NET会自动将当前用户(无论用户是匿名用户还是登录用户)与为其用户帐户存储的个人信息进行匹配。

  

配置个人资料属性

您将首先配置应用程序以启用配置文件属性。然后,您将为每个用户定义要跟踪的第一个属性。此属性名为PostalCode,将跟踪匿名用户和登录用户。

来源:https://msdn.microsoft.com/en-us/library/taab950e.aspx