我应该存储用户的ID,名称和会话变量中的电子邮件地址,或者我应该查询用户的用户ID,名称和每次我需要使用它时的电子邮件地址?
答案 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它更加友好并执行比默认提供商好很多。