有关书籍说:
Profile 对象与Session对象十分相似,但是更好用一些。与Session相似的地方在于,Profile是相对于一个特定的用户的,也就是说,每个Web应用程序的用户都有他们自己的profile对象。与Session不同的是,Profile对象是持久对象。如果你向Session中添加一个项,在你离开网站时,该项就会消失。而Profile则完全不同,当你修改Profile的状态时,修改在多个访问之间均有效。我想知道,为什么匿名用户关闭了浏览器,再打开还能取到自己的profile的值,服务器是把匿名用户的个人标识放在个人的cookie里了吗?但是我发现我清空了cookie,再打开浏览器还是能取到自己的profile的值,很奇怪
Profile 对象与Session对象十分相似,但是更好用一些。与Session相似的地方在于,Profile是相对于一个特定的用户的,也就是说,每个Web应用程序的用户都有他们自己的profile对象。与Session不同的是,Profile对象是持久对象。如果你向Session中添加一个项,在你离开网站时,该项就会消失。而Profile则完全不同,当你修改Profile的状态时,修改在多个访问之间均有效。我想知道,为什么匿名用户关闭了浏览器,再打开还能取到自己的profile的值,服务器是把匿名用户的个人标识放在个人的cookie里了吗?但是我发现我清空了cookie,再打开浏览器还是能取到自己的profile的值,很奇怪
我清了cookie这个副本好像还存在。
<add name="MyProfile" type="System.Web.Profile.SqlProfileProvider" connectionStringName="MisData" />
</providers>它能放到 数据库表去的哦。
还有定义Profile的属性时,要指名让他的allowAnonymous="true"
下面是我的一个购物车Profile.Cart,供你学习 <properties>
<group name="Cart">
<add name="ProId" type="System.Collections.ArrayList" allowAnonymous="true" />
<add name="ProName" type="System.Collections.ArrayList" allowAnonymous="true" />
<add name="Qty" type="System.Collections.ArrayList" allowAnonymous="true" />
<add name="ListPrice" type="System.Collections.ArrayList" allowAnonymous="true" />
<add name="TotalPrice" allowAnonymous="true" />
</group>
</properties>如果你对匿名用户的购物车信息迁移到登录用户这些感兴趣,可以联系我,QQ:442962355
<anonymousIdentification enabled="true"
cookieName=".DBANON"
cookieTimeout="43200"
cookiePath="/" cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All"
cookieless="UseCookies"/>匿名验证Provider在浏览器中创建一个Cookie并在匿名用户最后一次访问之后的43200Min(大约29天)之内识别他,以此重置计时器。如果一个月之内没访问,就会失效,形同手动清除Cookie。
唯一的解决方案是使用登录名和密码注册。