Aynı anda birden fazla Rol için bir denetleyiciye Yetki eklemek istiyorum.
Normalde bu şöyle görünür:
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
Ancak, bir noktada değişebilecekleri veya genişletilebilecekleri için Rollerimi sabitlerde depoladım.
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
Dize derleme sırasında bilinmesi gerektiğinden bunu yapamam:
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
Sorunu aşmanın bir yolu var mı?
Basitçe "RoleA, RoleB, RoleC" içeren bir const yazabilirim - ama sihirli dizgelerden hoşlanmıyorum ve bu sihirli bir dize. Bir Rolün adını değiştirmek ve birleşik dizeyi değiştirmeyi unutmak felaket olur.
MVC5 kullanıyorum. ASP.NET Kimliği ve Rolü derleme sırasında bilinir.