ウェブアプリケーションのロールベースのセキュリティを実装しようとすると、権限、ロール、ユーザー、およびユーザーロール(ロールへのユーザーの割り当て)のためのデータベース内にテーブルがあります。権限にフラグ列挙型を使用することの短所は何ですか?
各ロールには一連の権限があります。権限は、0,1,2,4などの値を持つC#フラグenumとして定義されます。
データベースでは、ロールテーブルには、ロールの結合パーミッションフラグを格納するintフィールドがあります。 (このようにして、別々のパーミッションテーブル(それは良いか悪いのか?)とRolePermissionsの1対多テーブルを避けます。
コードでは、 。役割(複数可)は、ユーザーは、.NETでは、列挙型のフラグに論理演算を実行していることを行うことは非常に簡単ですに割り当てられている
だから私の質問は次のとおりです。
はそれをやってのが欠点であります(ロールに付与された権限ごとに1つのレコードが含まれるPermissionテーブルとRolePermissionリンクテーブルを持つのとは対照的に)
感謝。使い方はそれほどエキゾチックではありません。各テナントが独自のロール名を定義し、ユーザーをカスタムロールに割り当てることを望む、マルチテナント型Webアプリケーションです。彼らは、それぞれのカスタムロールに標準的な権限セットを割り当ててマップする必要があります。 – Krishna