다음을 통해 공유


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.
    }
    

참고 항목

PrincipalPermissionAttribute는 오류로 인해 사용되지 않습니다.