ฉันต้องการเพิ่มการอนุญาตให้กับคอนโทรลเลอร์สำหรับหลาย ๆ บทบาทพร้อมกัน
โดยปกติจะมีลักษณะดังนี้:
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
แต่ฉันได้จัดเก็บบทบาทของฉันไว้ใน consts เนื่องจากอาจมีการเปลี่ยนแปลงหรือถูกขยายออกไป
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
ฉันไม่สามารถทำได้เนื่องจากต้องทราบสตริงในเวลาคอมไพล์:
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
มีวิธีหลีกเลี่ยงปัญหาหรือไม่?
ฉันสามารถเขียน const ซึ่งมีเพียง "RoleA, RoleB, RoleC" - แต่ฉันไม่ชอบสายเวทย์มนตร์และนี่คือสตริงเวทย์มนตร์ การเปลี่ยนชื่อบทบาทและลืมเปลี่ยนสตริงที่รวมกันอาจเป็นหายนะ
ฉันใช้ MVC5 ASP.NET Identity และ Role เป็นที่รู้จักในเวลาคอมไพล์