昨日、この問題を解決する方法を考えていました。ユーザーについて私が与えたりチェックしたりすることはすべて、彼の ProviderUserKey (ID) に依存しているためです。
だから私は次のような静的関数を1つ作りました
public static Guid GetUserID()
{
string UserID = string.Empty;
if(HttpContext.Current.Session["UserID"] != null)
{
UserID = HttpContext.Current.Session["UserID"].ToString();
}
if(!string.IsNullOrEmpty(UserID))
{
return new Guid(UserID);
}
UserID = Membership.GetUser().ProviderUserKey.ToString();
HttpContext.Current.Session["UserID"] = UserID;
return new Guid(UserID);
}
このクラスの主なポイントは、データベース接続を減らしてユーザー ID を確認/取得することです。
この機能に関する私の問題は、これが機能していないことではありません。私の問題は、ログインしているユーザーがログアウトして別のアカウントでログインした場合はどうなるかということです。
または、ログイン時にセッション値を追加し、ログアウト時にセッション値をクリアすることをお勧めしますか?
この種の「ユーザーIDの取得」に関する他の問題はどこにありますか?