SYSLIB0002: PrincipalPermissionAttribute está obsoleto
O construtor PrincipalPermissionAttribute é obsoleto e produz um erro SYSLIB0002
em tempo de compilação, começando no .NET 5. Não é possível instanciar esse atributo ou aplicá-lo a um método.
Ao contrário de outros avisos de obsolescência, você não pode suprimir esse erro.
Soluções Alternativas
você estiver aplicando o atributo a um método de ação do ASP.NET MVC:
Considere usar a infraestrutura de autorização interna do ASP.NET. O código a seguir demonstra como anotar um controlador com um atributo AuthorizeAttribute. O runtime do ASP.NET autorizará o usuário antes de executar a ação.
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. } } }
Para obter mais informações, consulte a Autorização baseada em função no ASP.NET Core e a Introdução à autorização no ASP.NET Core.
Se você estiver aplicando o atributo ao código de biblioteca fora do contexto de um aplicativo Web:
Execute as verificações manualmente no início do método chamando o método 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. }