【发布时间】:2011-08-21 16:23:20
【问题描述】:
我使用Membership.getUser() 来获取当前登录的用户,但我最近发现每次调用它时,都会从数据库中检索数据。
如果page.user 也调用了数据库,那么如何在不连续访问数据库的情况下获取当前登录的用户。
在会话中存储和管理这个对象会很困难。
【问题讨论】:
标签: c# .net asp.net authentication membership
我使用Membership.getUser() 来获取当前登录的用户,但我最近发现每次调用它时,都会从数据库中检索数据。
如果page.user 也调用了数据库,那么如何在不连续访问数据库的情况下获取当前登录的用户。
在会话中存储和管理这个对象会很困难。
【问题讨论】:
标签: c# .net asp.net authentication membership
Page.User 不会命中数据库。
您可以从HttpContext 获取当前登录用户的名称,而无需访问数据库。
string userName = HttpContext.Current.User.Identity.Name;
或
string userName = Page.User.Identity.Name;
【讨论】:
你可以使用HttpContext.User.Identity[MSDN]
if (User.Identity.IsAuthenticated)
{
Page.Title = "Home page for " + User.Identity.Name;
}
else
{
Page.Title = "Home page for guest user.";
}
【讨论】: