我正在使用ASP.NET Membership
并且我有一个名为的表,它与onUserProfiles
具有 1:1 的关系,以存储许多额外的字段。其中一个字段将在几乎每个页面上与常规角色一起用于授权目的。aspnet_Users
UserId
OrganisationID
所以我需要经常检查登录用户的OrganizationID。我不想为此使用Session
,我宁愿使用 Membership cookie 并每次都调用数据库。
在网站的母版页上拥有以下属性会对性能造成多大影响:
public UserProfile loggedInUser
{
get
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (Membership.GetUser() != null)
{
Guid userId = (Guid)Membership.GetUser().ProviderUserKey;
using (var db = new DatabaseContext())
{
return db.UserProfiles.Where(l => l.UserId == userId).FirstOrDefault();
}
}
}
return null;
}
}
该网站并不庞大,流量也不会很大。考虑到这是一个好的方法吗?