データベース駆動型ログインシステムを作成する方法
-
22-07-2019 - |
質問
ログインシステムをCookieで処理するのではなく、ローカル(サーバー上の)SQL DBのテーブルでWebサイトを作成したい
それを行う方法はありますか? 部分的な方法もありませんか?
Cookieの代わりに何をどこに保存すればよいですか
解決
ASP.NETは、デフォルトでセッションCookieを使用してユーザーリクエストを追跡します。 Cookielessセッションを使用する場合、ブラウザからのすべてのリクエストにセッションIDが追加されます。多くのシナリオでは、これも受け入れられない可能性があります。
データベースにアクセスして" LoggedIn"を確認する場合でも、リクエストごとにフラグを立てますが、着信リクエストを特定のユーザーに属するものとして識別する何らかの方法が必要です。これは、セキュリティシナリオに応じて、非表示フィールドの暗号化された値の形式になります。ただし、クライアントから送信されたデータはすべて改ざんされている可能性があるため、Cookieを使用するよりも優れた方法ではありません。
個人的には、Cookieは適切に暗号化する限り、ユーザーリクエストを追跡するのに最適だと思います。
他のヒント
ユーザーを区別する何らかの方法がまだ必要です。 Cookieを使用しない場合は、URLでその情報を転送するか、単一のIPアドレスから1人のユーザーのみを許可する必要があります(これは本当に愚かです)...または他の何か。 Cookieはそれほど悪くありません:-)。
ログインシステムの実際の実装についてサポートが必要な場合は、特定の問題に関する詳細を含める必要があります。
ユーザー名などをデータベースに保存できますが、ページ間を移動するときにユーザーを認識する方法が必要です。これは、このログイントークンを保持するためのCookieロールです...
このトークンを処理する他の方法を実装することは可能です。このトークンを保存するには、URLまたは非表示フィールドをASP.NETのViewStateとして使用できます。
それで、はい;それを行うことができます。ただし、ASP.NETが既に提供しているものを使用できないため、ある程度の作業が必要です。 (ASP.NETには、このトークンをCookieとして処理し、資格情報をデータベースに保存する組み込み機能があります。)
SqlMembershipProvider を使用します。