대로
public static class AppRoles
{
public const string Users = "UsersRoleName";
public const string Admin = "AdminRoleName";
}
같은 것을 사용할 수 있습니다 다음 컨트롤러는 권한 부여 속성을 가질 수있다 AuthorizeAttribute
클래스를 확장 한 것은 다음과 같습니다. (비판은 환영 할만한 것입니다.)
AuthorizeFromConfiguration.cs :
public class AuthorizeFromConfiguration: AuthorizeAttribute
{
public new string Roles
{
get {
return base.Roles;
}
set {
var config = new ConfigurationBuilder()
.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("authorization.json")
.Build();
base.Roles = config[value];
}
}
}
authorization.json :
{
"Parts": {
"Create": "contoso.com\\MyWebApp_CreateNewPart",
"Edit": "contoso.com\\MyWebApp_EditPart"
}
}
사용 예 :
[AuthorizeFromConfiguration(Roles = "Parts:Create")]
public class CreateModel : PageModel
{
//...
}
참고 : set
대신 JSON 파일이 get
접근 자로 읽혀 지도록 논리를 변경하려고 시도해도 authorization.json
파일의 변경 사항이 적용되기 전에 웹 사이트를 재시작해야했습니다.
그래, 더 많은 인터넷 검색 결과가 보이는 유일한 방법입니다. –