Aracılığıyla paylaş


SYSLIB0002: PrincipalPermissionAttribute kullanımdan kaldırıldı

PrincipalPermissionAttribute Oluşturucu eskidir ve .NET 5'te başlayarak derleme zamanı hatası SYSLIB0002oluşturur. Bu özniteliğin örneğini oluşturamaz veya bir yönteme uygulayamazsınız.

Diğer eski uyarılardan farklı olarak, hatayı gizleyemezsiniz.

Geçici Çözümler

  • özniteliğini bir ASP.NET MVC eylem yöntemine uyguluyorsanız:

    ASP kullanmayı göz önünde bulundurun. NET'in yerleşik yetkilendirme altyapısı. Aşağıdaki kod, bir özniteliği olan AuthorizeAttribute bir denetleyiciye nasıl ek açıklama ekinin ek açıklama eklilğini gösterir. ASP.NET çalışma zamanı, eylemi gerçekleştirmeden önce kullanıcıyı yetkiler.

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

    Daha fazla bilgi için bkz. ASP.NET Core'da rol tabanlı yetkilendirme ve ASP.NET Core'da yetkilendirmeye giriş.

  • Özniteliğini bir web uygulamasının bağlamı dışında bir kitaplık koduna uyguluyorsanız:

    yöntemini çağırarak yönteminizin başında el ile denetimleri gerçekleştirin 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.
    }
    

Ayrıca bkz.

PrincipalPermissionAttribute, hata olarak kullanımdan kaldırıldı