我使用Membership.getUser()
来获取当前登录的用户,但我最近发现每次调用它时,都会从数据库中检索数据。
如果page.user
也调用了db,那么如何在不连续命中数据库的情况下获取当前登录的用户。
在会话中存储和管理此对象会很困难。
答案 0 :(得分:3)
Page.User
不会命中数据库。
您可以从HttpContext
获取当前登录用户的名称,而无需点击数据库。
string userName = HttpContext.Current.User.Identity.Name;
OR
string userName = Page.User.Identity.Name;
答案 1 :(得分:1)
您可以使用HttpContext.User.Identity
[MSDN]
if (User.Identity.IsAuthenticated)
{
Page.Title = "Home page for " + User.Identity.Name;
}
else
{
Page.Title = "Home page for guest user.";
}