ASP.NET Webアプリケーションの認証システム?
-
07-07-2019 - |
質問
質問があります:
役割ベースのWebアプリケーションの作成方法フォーラムサイトなどでは、多くのユーザータイプ、管理者、モデレーターなどがあります。これらのユーザータイプの役割はデータベースまたはweb.configに格納されていますか?そして、ユーザーが私たちのサイトにログインするとき、このユーザーの役割を制御する方法は?要するに、承認と認証について学びたいのです。
ありがとう..
解決
@Mavera:
基本的には、独自のデータベースに独自のユーザーテーブルを置くという概念です。ここでは、アクセス許可を管理し、ログイン情報を格納できます(もちろん適切にハッシュされます)。マルチレベルのアクセス許可スキームの場合、通常、2つ以上のテーブルを使用します。例:
TblUsers:
-----------------------------------------------------------------
| UserID (PK) | UserName | HashedPassword | PermissionLevel (FK)|
|---------------------------------------------------------------|
| 1 | BobTables| adfafs2312 | 2 |
-----------------------------------------------------------------
TblPermissions
-------------------------------------
| PermissionID (PK) | Description |
--------------------------------------
| 1 | User |
| 2 | SuperUser |
| 3 | Admin |
--------------------------------------
ユーザーが実行できる実際の能力を公開するTblPermissions間の1対多の関係を含む3番目のテーブルを追加できます。
ユーザーのクエリは次のように簡単です:
SELECT TblUser.Username, TblPermissions.Description
FROM TblUsers, TblPermissions
WHERE TblUser.UserID = @UserID
AND TblUser.PermissionLevel = TblPermission.PermissionID;
その情報をカプセル化するカスタムクラスを作成し、ログイン時にASP.NETセッションに保存します。
他のヒント
ビルトイン認証スキームは、基本的に誰が出入りできるのかを認証するだけで、特別な管理者アカウントを持っているなどのカスタム状況では不十分な単純な状況でうまく機能することがわかりました
これらの状況では、独自の認証スキームを作成しました。
所属していません StackOverflow