Page.User打电话做数据库

时间:2011-08-21 16:23:21

标签: c# .net asp.net authentication membership

我使用Membership.getUser()来获取当前登录的用户,但我最近发现每次调用它时,都会从数据库中检索数据。

如果page.user也调用了db,那么如何在不连续命中数据库的情况下获取当前登录的用户。

在会话中存储和管理此对象会很困难。

2 个答案:

答案 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.";
}