asp.net客户信息类

时间:2011-10-28 19:19:33

标签: asp.net

我正在构建一个asp.net Web应用程序(框架4),并希望开发一个类,其中包含基本的客户信息(客户ID,电子邮件,电话,地址信息,客户帐户等),应该是 可以通过网站页面进行访问,这样我就没有商店客户ID(会话等),并且每当我需要有关该客户的信息时都会调用DB。
当用户登录到门户网站并获取他/她的基本信息并以类的形式存储时,我想只调用一次DB。

任何人都可以告诉我们如何开发这类类型以及在何处/如何存储它以使其可用于所有页面?

1 个答案:

答案 0 :(得分:0)

用户成功登录后,只需调用一次DB即可检索当前的Customer对象并将其保存到Session。不要只是认为你会滥用服务器的内存。该对象将少于500个字节,如果您有1000个实时会话,则它的服务器内存不到500 KB。

您也可以考虑Cache键入User ID并检索Customer对象。

您也可以将Customer对象保存到ViewState,并且不会占用服务器上的任何内存。

从任意页面访问Session \ Cache \ ViewState非常容易。

适用于Session

protected void Page_Load(object sender, EventArgs eventArgs)
{
    Customer customer = Session["customer"] as Customer;
}

private void LoginSuccess(int customerID) {
    Customer customer = _customerRepository.GetById(customerID);
    Session["customer"] = customer;
}

**对于ViewState,它与Session相同 - 只需将Session替换为ViewState

如果您想将其存储在Cache中,请使用

HttpContext.Current.Cache.Insert("customer" + customerId, customer, new CacheDependency("customer" + customerId), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);

您可以像这样访问Cache项:

HttpContext.Current.Cache["customer" + customerID]

希望这有帮助!