153 kişiden 133'ü bunu faydalı buldu Bir kimlik oluşturulduğunda, bir veya daha fazla role ait olabilir; örneğin Tracy Yönetici ve Kullanıcı rollerine ait olabilirken, Scott sadece kullanıcı rolüne ait olabilir. Bu rollerin nasıl oluşturulduğu ve yönetildiği yetkilendirme sürecinin destek deposuna bağlıdır. Roller, ClaimsPrincipal sınıfındaki IsInRole özelliği aracılığıyla geliştiriciye sunulur.
Yeni kimlik bir veya daha fazla role ait olabilir; örneğin, Tracy Yönetici ve Kullanıcı rollerine ait olabilir, Scott ise sadece Kullanıcı rolüne ait olabilir. Bu rollerin nasıl oluşturulduğu ve yönetildiği, yetkilendirme sürecinin nasıl saklandığına bağlıdır. ClaimsPrincipal sınıfının IsInRole yöntemi, geliştiricilere rolü nasıl kullanacaklarını sağlar.
Rol kontrolleri ekleme Rol doğrulama ekle
Rol tabanlı yetkilendirme kontrolleri bildirgicidir - geliştirici bunları kendi koduna, bir denetleyiciye veya bir kontrolör içindeki eyleme gömer ve mevcut kullanıcının sahip olması gereken rolleri belirler İstenen kaynağa erişmek için üye olun.
Rol tabanlı kimlik doğrulama, iddia tabanlıdır; geliştiriciler bunu kodlarına gömyerek, bir kontrolöre veya içindeki yöntemlere roller atar; bu da istekte kullanıcıların ilgili üyelik gereksinimlerini karşılaması gerektiğini belirtir.
Örneğin, aşağıdaki kod, Yönetici grubunun bir üyesi olan kullanıcılarla AdministrationController'daki herhangi bir eyleme erişimi sınırlandırır.
Örneğin, aşağıdaki kod, AdministrationController'daki herhangi bir yöntemin yalnızca Yönetici grubunun bir üyesi olarak kullanılmasını kısıtlar.
Birden fazla rolü virgülle ayrılmış bir liste olarak belirtebilirsiniz;
Virgül bölünmüş bir listeye birden fazla atanmış rol ekleyebilirsiniz:
Bu kontrolör, yalnızca HRManager veya Finans rolü üyesi olan kullanıcılar tarafından erişilebilir olacaktır.
Kontrolör yalnızca HRManager veya Finans rolü üyeleri tarafından erişilebilir olacak.
Birden fazla öznitelik uygularsanız, erişen kullanıcı belirtilen tüm rollerin üyesi olmalıdır; aşağıdaki örnek, bir kullanıcının hem PowerUser hem de ControlPanelUser rolünün üyesi olmasını gerektirir.
Birden fazla öznitelik kullanıyorsanız, erişim kullanıcısı tüm rollerin bir üyesi olmalıdır; Aşağıdaki örnek, bir kullanıcının hem PowerUser hem de ControlPanelUser rollerinin üyesi olmasını gerektirir.
Eylem seviyesinde ek rol yetkilendirme özellikleri uygulayarak erişimi daha da sınırlayabilirsiniz;
Ek kullanım kısıtlamaları uygulamak için metod seviyesinde ek rol yetkilendirme özellikleri kullanabilirsiniz;
Önceki kod parçasında, Yönetici rolünün üyeleri veya PowerUser rolü denetleyiciye ve SetTime eylemine erişebilir, ancak yalnızca Yönetici rolünün üyeleri ShutDown eylemi.
Önceki kod parçasında, Administrator veya PowerUser rollerinin üyeleri kontrolcü ve SetTime yöntemlerini kullanabilir, ancak sadece Administrator rolünün üyeleri ShutDown yöntemini kullanabilir.
Ayrıca bir kontrolciyi kilitleyebilir ama bireysel eylemlere anonim, kimlik doğrulamasız erişime izin verebilirsiniz.
Ayrıca bir denetleyiciyi engelleyebilirsiniz, ancak anonim kullanıcıların yetkisiz ayrı yöntemler kullanmasına izin verebilirsiniz.
Politika tabanlı rol kontrolleri Politika tabanlı rol kontrolleri
Rol gereksinimleri ayrıca yeni Politika sözdizimi kullanılarak da ifade edilebilir; burada bir geliştirici, Yetkilendirme hizmeti yapılandırmasının bir parçası olarak bir politikayı başlatırken kaydeder. Bu genellikle Startup.cs dosyanızdaki ConfigureServices() içinde yer alır.
Roller, geliştiricilerin bir politikayı başlangıçta yetkilendirme hizmeti yapılandırmasının bir parçası olarak kaydettiği yeni bir politika sözdizimi kullanılarak da elde edilebilir. Bu genellikle Sartup.cs dosyasının ConfigureServices() dosyasına eklenir.
Politikalar, AuthorizeAttribute özniteliğindeki Policy özelliği kullanılarak uygulanır;
Politikayı, AuthorizeAttribute özelliğinin üzerinde Policy özelliğini kullanarak uygulayın.
Bir gereksinimde birden fazla izin verilen rol belirtmek istiyorsanız, bunları RequireRole metoduna parametre olarak belirtebilirsiniz;
Bir istekte birden fazla rol belirtmek istiyorsanız, bunları RequireRole metodunun birden fazla parametresi olarak belirtebilirsiniz:
bu örnek, Yönetici, PowerUser veya BackupAdministrator rollerine ait kullanıcıları yetkiler.
Bu örnekteki yetkili kullanıcı, Yönetici, PowerUser veya BackupAdministrator rolüne ait olacaktır.
Transfer edilenler:Bağlantı girişi görünür. |