Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 31277|Yanıt: 2

[Kaynak] Rol Tabanlı Yetkilendirme

[Bağlantıyı kopyala]
2020-6-7 tarihinde 21:25:56 tarihinde yayınlandı | | |
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.




Önceki:HttpContext.User.IsInRole() her zaman false döndürmesi sorunu çözüldü
Önümüzdeki:TS Eksik radix parametresi (radix)
 Ev sahibi| 2020-6-7 tarihinde 21:36:01 tarihinde yayınlandı |


Sadece son özelliği uygulamak istiyorsanız, yani:

Özel filtreye aşağıdakileri ekleyebilirsiniz:


AlpermitMultiple

Bu özellik, özel özelliklerimizin aynı program varlığından önce birden fazla kez yerleştirilip yerleştirilemeyeceğini gösterir.
 Ev sahibi| 2020-6-10 tarihinde 11:46:34 tarihinde yayınlandı |
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com