我使用的是ASP.NET Membership
,我有一个名为UserProfiles
的表,它与UserId
上的aspnet_Users
有1:1的关系,用于存储大量额外的字段。其中一个字段为OrganisationID
,这些字段将用于几乎每个页面,并与常规角色一起用于授权目的。主页属性和性能
所以我需要经常检查登录用户的OrganisationID。我不想为此使用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;
}
}
该网站是不是大规模,交通不会是巨大的。这是一个好方法吗?
欣赏见解。我会小提琴,稍后再回来。我只是不相信会话 - 通常用它作为最后的手段 - 与它的大小无关。 – user982119