anonymousIdentification 与匿名访问

时间:2022-04-11 10:38:50

anonymousIdentification 元素(ASP.NET 设置架构)

来自 <https://msdn.microsoft.com/zh-cn/library/91ka2e6a(v=vs.100).aspx>

配置匿名标识是否启用。

匿名标识应用场景:

电子商务Web应用程序尤其需要这个功能。电子商务站点必须支持匿名用户和验证用户。匿名用户在浏览站点时,把商品添加到购物车上后,Web应用程序需要一种唯一标识这些用户的方式。例如,在Amazon.com、BN.com等繁忙的电子商务Web站点上,并不接受匿名用户的概念,而是给每个用户赋予一个唯一标识。若需要记录用户数据,可使用匿名标识。

当浏览器第一次访问站点时,服务器的响应中会有个set-cookie的命令,给当前浏览器一个匿名用户标识。往后的请求中,都会带着这个标识,此时如果用户在站点中的操作需要记录数据时,该标识则可唯一确定那部分数据的从属。

如下面的例子

Web.config配置

<anonymousIdentification enabled="true"/>
<profile>
<properties>
<add name="bgColor" allowAnonymous="true"/>
<add name="fgColor" allowAnonymous="true"/>
</properties>
</profile>  

服务端记录用户数据的代码

if (AnonymousIdentificationModule.Enabled)
{
  Profile["bgColor"] = bg;
  Profile["fgColor"] = fg;
}
return RedirectToAction("Login");

Profile有个索引器,可以获取或设置按属性名进行索引的配置文件属性值。在需要获取用户数据时用下面形式则可

Profile["bgColor"]
Profile["fgColor"]

例如可以直接把值显示在视图中

<p>
@Profile["bgColor"]+ @Profile["fgColor"]
</p>

由于浏览器是通过cookie记录标识,故cookie一丢失(过期或清除),用户数据则会丢失。

另外尚未了结存储数据的原理,因为重启浏览器无效,监控请求未发现请求有变化,重新启动网站,重启生成都无效果。

例子来源 http://www.voidcn.com/blog/byondocean/article/p-623700.html