0

フォーラムで作業していますが、ユーザー権限をDBに保存したいと思います。私の考えはこれです:

USER TABLE HAS: (besides name, login etc)
fk_role_id

ROLE TABLE HAS:
role_id
role_name
role_rights

次にEnum、ユーザー権限とユーザークラスを持つを持っています:

[Flags] public enum PermissionTypes : int {
    None = 0,
    Register = 1,
    ThreadCreate = 2,
    ThreadEdit = 4,
    ThreadDelete = 8,
    ReplyCreate = 16,
    ReplyEdit = 32,
    ReplyDelete = 64,
    CatCreate = 128,
    CatEdit = 256,
    CatDelete = 512,
    UserCreate = 1024,
    UserEdit = 2048,
    UserDelete = 4096,

    All = Register | ThreadCreate | ThreadEdit | ThreadDelete | ReplyCreate | ReplyEdit | ReplyDelete | CatCreate | CatEdit | CatDelete | UserCreate | UserEdit | UserDelete
}

public class User {
    public PermissionTypes Permissions = PermissionTypes.None;
}

これで、ユーザー権限をintとして保存できますrole_rightsか?そして、彼らを再びオフコースに連れ出しますか?

アップデート:

私の問題が何であるかを明確にするためだけに...Fx。CatCreateとUserCreateの権限を持つユーザーがいる場合、合計で1152 ...では、その番号を使用して、ユーザーがどの権限を持っているかをテストするにはどうすればよいですか?今では小数第1位です

4

1 に答える 1

1

はい。

「CatDelete」などの特定の値を確認する場合は、次のようにしますPermissions & PermissionTypes.CatDelete == PermissionTypes.CatDelete

1つの値を削除するには:Permissions &= ~PermissionTypes.CatDelete

1つの値を追加するには:Permissions |= PermissionTypes.CatDelete

于 2013-03-04T12:45:24.077 に答える