如果使用asp.net设计一个B2C网站,用户的个人数据,例如用户余额 MyBalance使用哪种方式在页面上呈现最安全?我现在用的是ViewState
public decimal MyBalance
{
set { ViewState["MyBalance"] = value; }
get
{
if (ViewState["MyBalance"] != null)
{
return decimal.Parse(ViewState["MyBalance"].ToString());
}
else
{
return 0;
}
}
}
通过在Page_Load从数据库中取到值,赋给MyBalance。我想知道还有其它更好方法吗?有时候这个页面可能需要用户的多个数据,如头像、上次登陆时间、积分、昵称。。这样ViewState是不是太多了?
根本就不应该放在viewstate里,应该每次页面加载时去数据库读取
为了性能的话,你还是写入Cookies,然后用JS读取并显示吧,在数据更新或Cookies失效时再重新写入,这样性能会比较好。 为了安全性的话就使用Session,几个数值占不了几个字节的内存,同时几万个用户在线都不会有任何感觉的,这样性能也会很好。 两者结合使用更好,比如头像、昵称、登录时间存在Cookies里,积分、余额放在Session中,这里的原则就是高使用频率、高敏感度的数据放入Session,其它的放进Cookies。 需注意的就是,Cookies一般仅供显示,在提交数据时绝对不能从中取值,要从数据库取回,否则会被恶意用户欺骗。
要是用户开两个浏览器去操作。你不就脏读了。