한 번에 여러 역할에 대한 권한을 컨트롤러에 추가하고 싶습니다.
일반적으로 다음과 같습니다.
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
하지만 특정 시점에서 변경되거나 확장 될 수 있으므로 내 역할을 const에 저장했습니다.
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
컴파일 타임에 문자열을 알아야하기 때문에이 작업을 수행 할 수 없습니다.
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
문제를 피할 수있는 방법이 있습니까?
나는 단순히 "RoleA, RoleB, RoleC"를 포함하는 const를 작성할 수있다. 그러나 나는 마법의 문자열을 싫어하고 이것은 마법의 문자열이다. 역할 이름을 변경하고 결합 된 문자열을 변경하는 것을 잊는 것은 재앙이 될 것입니다.
MVC5를 사용하고 있습니다. ASP.NET ID와 역할은 컴파일 타임에 알려집니다.