我只是调查了ASP.NET Identity,这似乎是最近用于ASP.NET应用程序中用户身份验证的最佳解决方案(将所有ASP.NET Membership替换为过去)。ASP.NET身份 - 维护有关匿名用户的信息
我正在寻找一种解决方案,可以保留有关匿名用户的信息。 即使用户未通过身份验证,我们也可以收集并存储用户通过身份验证后可以存储的大部分个人资料数据。
即使用户是匿名的,是有意义的存储像数据:他是写在网站上(这样他就可以编辑它们的创建者)
- 购物车
- 评论
- 各站点首选项(他的首选语言,和许多其他设置)
然后,当用户注册,我们可以提供给某些数据复制到他的新用户PR (或自动复制)取决于它是什么数据。
有没有可能通过ASP.NET身份来实现这种情况?看起来,当一个用户在ASP.NET Identity中匿名时,他不能拥有任何用户配置文件数据。
为了使用相同的表格存储所有这些信息与经过验证的用户相同,我们可能需要在系统中为每个访问该网站的新访客创建一个新用户,并执行一些操作,需要存储一些用户数据。然后,我们需要传递一些cookie标识符给用户,这样我们就可以始终将数据连接到用户,这可以看作是某种形式的认证(虽然对于实际用户是不可见的)。这样,访客用户实际上可以代表系统的已认证用户(也许他只是有一个特殊角色?),尽管据他所知,他是匿名的。
您对这种方法有什么看法? ASP.NET Identity有什么方法可以帮助解决这个问题?
我发现这两个相关堆栈溢出的问题,但我还没有找到我的答案在他们:
编辑:
I发现在ASP.NET中有一种叫做的匿名身份识别,这似乎解决了部分问题。
https://msdn.microsoft.com/en-us/library/91ka2e6a(v=vs.85).aspx
也许可以某种方式与ASP.NET身份集成?
EDIT2:正如在评论中指出,为匿名鉴定的文件似乎已经过时,这是相当可能的,微软不会把重点放在这么多的未来。与ASP.NET Identity或其他基于OWIN的解决方案配合使用的解决方案是首选。
恐怕身份在这里帮不了你。这里没有内置的功能 - 你必须自己想出大部分的东西。但是,您可以使用一些OWIN Cookie中间件来处理声明和Cookie。 – trailmax
我已经完成用OWIN身份验证Cookie。相关的部分可以在这里看到:https://github.com/trailmax/OwinADAuthentication/blob/master/ActiveDirectoryAuthentication/Models/AdAuthenticationService.cs#L82 – trailmax
@trailmax:感谢您的回复。我喜欢ASP.NET Identity中的大部分功能并计划使用它们,因此我更关注如何将这些访客用户集成到ASP.NET Identity框架中。 –