C#asp.net项目功能

时间:2011-11-10 12:49:26

标签: c# asp.net .net visual-studio project

我刚开始从事一个不是由我开发的项目,我担心一些功能,我想从我一直重视的人的建议!你们!

登录验证后,登录过程如下:

var _ticket = new FormsAuthenticationTicket(1, user.ID, DateTime.Now, DateTime.Now.AddDays(30), true, user.ID);

string encTicket = FormsAuthentication.Encrypt(_ticket);
            HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

正如我们所看到的,有一个用户对象存储登录用户的每个信息(Id,名称,电子邮件......)

我看到的第一个问题是在FormsAuthenticationTicket上,用户ID作为名称传递。每次我想从用户那里获得任何信息我都必须这样做:

Item user = Framework.Business.Item.Load(HttpContext.Current.User.Identity.Name);

该项目使用母版页,在每个页面上我都必须这样做才能获取已登录用户的(ID,名称和图片)

顺便说一下,至少load方法从集合中获取用户日期,但是,此集合不仅存储用户数据,而且还存储需要缓存的每个数据数据(因为ID是GUID)ID不会被复制并且我认为因为这个原因,所有东西都只有一个集合。

我想知道这是否正确,或者我该怎么做才能让它变得更好

1 个答案:

答案 0 :(得分:1)

没错。您无需担心代码:

Item user = Framework.Business.Item.Load(HttpContext.Current.User.Identity.Name);

没关系。 HttpContext.Current.User(必须确实)在每个请求中自动初始化。就是这样。