特定のユーザーの情報を追跡してロードする方法は?
-
16-10-2019 - |
質問
ユーザーが個人情報(PI)をログインして追加、編集することができるASP.NET(C#.NET4を使用)で小さなポータルを作成しています。ただし、特定のユーザーがログインしているときにページに情報(SQL Server DBに保存されている)をロードする方法はありません。
たとえば、SAMがログインしている場合、彼はPIを表示できます。ヴィッキーがログインすると、彼女は彼女のPIを見ることができます。
誰がこれで私を助けることができますか?
前もって感謝します。
解決
ログインしたユーザーのIDをに保持する必要があります セッション変数 次に、それを使用して、各ユーザーの情報を取得するクエリをフィルタリングします。
したがって、ユーザーのIDが278の場合、クエリは次のように実行されます。
SELECT first_name, last_name, * FROM user_table WHERE user_id = 278
次のように保存されているセッション変数から
Session["UserId"] = currentUserId;
他のヒント
ASP.NETメンバーシッププロバイダー すでにあなたのためにこれの世話をしています。あなたはそれを使用することを考えましたか?すべての認証、許可、役割、およびアクセス/編集プロファイル情報を管理できます。これを定義します。メンバーシップオブジェクトを介してデータにアクセスすると、SQLの単一行を記述する必要はありません。ホイールを再発明しようとするのではなく、大量の作業を節約できます。
他の回答で説明されているように、通常のメンバーシップを使用します。次に、プロファイルシステムを活用して、各ユーザーがログインしたときに情報を表示/編集できるようにします(質問に従って)。警告:ASP.NETプロファイルシステムは、Webサイトプロジェクトテンプレートでのみ箱から出しています。 Webアプリケーションプロジェクトテンプレートを使用する場合は、こちらの手順に従ってください。
ASP.NET:WebサイトとWebアプリケーションプロジェクト
プロファイルが稼働している場合、ユーザーがログインしている間にプロファイルデータをセッションオブジェクトに保存できます。