会话或查询

时间:2010-05-21 04:15:15

标签: c# asp.net sql-server

我应该存储用户的ID,名称和会话变量中的电子邮件地址,或者我应该查询用户的用户ID,名称和每次我需要使用它时的电子邮件地址?

3 个答案:

答案 0 :(得分:1)

将其保存在会话变量中。最好将常用数据缓存在应用程序中,而不是一堆往返服务器。

答案 1 :(得分:1)

public class UserInfo
{
   public int UserID {get;set;}
   public string Email {get;set;}
   ...
}

当用户登录时,创建UserInfo的实例并将其存储在会话中。

答案 2 :(得分:1)

如果您使用的是ASP.NET安全性,即成员资格提供者和角色提供者等,那么您不必存储它。它由会员提供者提供:

 MembershipUser myObject = Membership.GetUser();
 string UserID = myObject.ProviderUserKey.ToString();

此外,如果您在安全网站上自动对每个页面上的用户进行身份验证,那么成员资格提供程序不必返回数据库来获取数据,因为它已经在当前的范围内请求。

如果您使用开箱即用的个人资料提供程序,我建议您使用并下载Scott Gu的博客中提到的基于表格的提供程序:http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx它更加友好并执行比默认提供商好很多。