Saya perlu menerapkan fleksibel DAN sederhana (jika ada) dan pada saat yang sama menggunakan sarana bawaan jika memungkinkan
Sejauh ini saya telah menerapkan MembershipProvider dan RoleProviders. Ini keren tapi kemana saya harus pergi selanjutnya?
Saya merasa seperti saya perlu menambahkan istilah "Priviledge" dan daripada hardcode yang ada di dalam aplikasi. Pengguna akan mengonfigurasi peran untuk menambahkan Privilidges ke Peran dan menetapkan Peran kepada pengguna.
Apakah itu terdengar seperti model yang bagus? Haruskah saya berpikir tentang menambahkan hak istimewa di tingkat Pengguna selain menambahkannya ke Peran? Saya mungkin tetapi saya membayangkan masalah dengan pengaturan (membingungkan) dan dukungan berikut.
Jika saya tidak melakukan itu dan beberapa pengguna tertentu akan membutuhkan hak istimewa yang lebih rendah - admin harus membuat peran lain, dll.
Adakah peluru perak untuk sistem seperti ini? Dan mengapa Microsoft tidak melangkah lebih jauh dari sekadar penyedia Keanggotaan dan Peran?
Gagasan lain: Tinggalkan Peran sebagai pemegang "hak pribadi" dan hardcode mereka. Lalu saya bisa kode untuk peran-peran di dalam aplikasi menggunakan semua markup / atribut yang tersedia, dll - semua Microsoft.
Tambahkan entitas baru "Grup" dan buat hubungan seperti ini
- Pengguna
- Grup Pengguna
- Grup
- RoleGroups
- Peran
Dengan cara ini saya dapat mengumpulkan Peran ke dalam grup dan menugaskan grup tersebut ke Pengguna. Kedengarannya hebat dan cocok dengan pola perangkat lunak lainnya. Tapi kemudian saya tidak bisa benar-benar mengimplementasikan hal-hal di dalam RoleProvider seperti:
- AddUsersToRoles
- RemoveUsersFromRoles
Dan beberapa hal tidak benar-benar masuk akal lagi karena mereka akan dikodekan dengan keras
- DeleteRole
- Buat Peran
sumber
IPrincipal
keIClaimsPrincipal
ketika Anda ingin melakukan pemeriksaan klaim. Anda akan menulis banyak kode Anda sendiri jika Anda ingin menyesuaikannya dengan (misalnya) Formulir Otentikasi, tetapi jelas itu dapat dilakukan (sesuai tautan).