SYSLIB0002: PrincipalPermissionAttribute가 사용되지 않음
PrincipalPermissionAttribute 생성자는 .NET 5부터 사용되지 않고 컴파일 시간 오류 SYSLIB0002
를 생성합니다. 이 특성을 인스턴스화하거나 메서드에 적용할 수 없습니다.
다른 사용 중지 경고와 달리 이 오류는 표시되지 않도록 할 수 없습니다.
해결 방법
ASP.NET MVC 작업 메서드에 특성을 적용하는 경우:
ASP.NET의 기본 제공 권한 부여 인프라를 사용하는 것이 좋습니다. 다음 코드에서는 AuthorizeAttribute 특성을 사용하여 컨트롤러를 주석 처리하는 방법을 보여 줍니다. ASP.NET 런타임은 작업을 수행하기 전에 사용자에게 권한을 부여합니다.
using Microsoft.AspNetCore.Authorization; namespace MySampleApp { [Authorize(Roles = "Administrator")] public class AdministrationController : Controller { public ActionResult MyAction() { // This code won't run unless the current user // is in the 'Administrator' role. } } }
자세한 내용은 ASP.NET Core의 역할 기반 권한 부여 및 ASP.NET Core의 권한 부여 소개를 참조하세요.
웹앱의 컨텍스트 외부에 있는 라이브러리 코드에 특성을 적용하는 경우:
IPrincipal.IsInRole(String) 메서드를 호출하여 메서드 시작 부분에서 수동으로 검사를 수행합니다.
using System.Threading; void DoSomething() { if (Thread.CurrentPrincipal == null || !Thread.CurrentPrincipal.IsInRole("Administrators")) { throw new Exception("User is anonymous or isn't an admin."); } // Code that should run only when user is an administrator. }
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET