我刚开始从事一个不是由我开发的项目,我担心一些功能,我想从我一直重视的人的建议!你们!
登录验证后,登录过程如下:
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不会被复制并且我认为因为这个原因,所有东西都只有一个集合。
我想知道这是否正确,或者我该怎么做才能让它变得更好
答案 0 :(得分:1)
没错。您无需担心代码:
Item user = Framework.Business.Item.Load(HttpContext.Current.User.Identity.Name);
没关系。 HttpContext.Current.User(必须确实)在每个请求中自动初始化。就是这样。