私が使用していて、多くの追加フィールドを格納するためにonと 1:1 の関係を持つというASP.NET Membership
名前のテーブルがあります。これらのフィールドの 1 つは、承認目的で通常のロールと組み合わせて、ほぼすべてのページで使用されるフィールドです。UserProfiles
aspnet_Users
UserId
OrganisationID
そのため、ログインしているユーザーの OrganizationID を頻繁に確認する必要があります。これには使用したくありませんSession
。メンバーシップ 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;
}
}
サイトは大規模ではなく、トラフィックも大規模ではありません。これはOKなアプローチですか?