Saya ingin menambahkan Otorisasi ke pengontrol, untuk beberapa Peran sekaligus.
Biasanya akan terlihat seperti ini:
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
Tapi saya telah menyimpan Peran saya dalam konstanta, karena mereka mungkin berubah atau diperpanjang di beberapa titik.
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
Saya tidak dapat melakukan ini, karena string harus diketahui pada waktu kompilasi:
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
Apakah ada cara untuk menghindari masalah tersebut?
Saya BISA menulis const yang hanya berisi "RoleA, RoleB, RoleC" - tetapi saya tidak suka string ajaib dan ini adalah string ajaib. Mengubah nama Role dan lupa mengganti string gabungan akan menjadi bencana.
Saya menggunakan MVC5. Identitas ASP.NET dan Peran diketahui pada waktu kompilasi.