0

Aşağıdaki Custom Role Provider Tutorial'u kullanarak MVC5 uygulamasında özel bir rol yöneticisi uygulamaya çalışıyorum.Özel Rol Yöneticisi/Sağlayıcısı

Gerekli 2 işlevi yerine getirerek Özel Rol Sağlayıcımı oluşturdum.

namespace Models.Security 
{ 
public class CustomRoleProvider : RoleProvider 
{ 
/// logic 
public override string[] GetRolesForUser(string username) 
    { 
/// logic 
public override bool IsUserInRole(string username, string roleName) 
    { 
Daha sonra bu yeni sağlayıcıyı kullanmak benim web yapılandırma değiştirmek gerekir

...

<system.web> 
<compilation debug="true" targetFramework="4.5.2" /> 
<httpRuntime targetFramework="4.5.2" /> 
<roleManager enabled="true" defaultProvider="CustomRoleProvider"> 
    <providers> 
    <clear /> 
    <add name="CustomRoleProvider" type="Models.Security.CustomRoleProvider"/> 
    </providers> 
</roleManager> 

Ancak denemek ve aşağıdaki hatayı alıyorum Başvurumu eriştiklerinde:

Ayrıştırıcı Hatası Mesaj: 'Models.Security.CustomRoleProvider' tipi yüklenemedi.

Source Error: 

Line 29:  <providers> 
Line 30:   <clear /> 
Line 31:   <add name="CustomRoleProvider" type="Models.Security.CustomRoleProvider"/> 
Line 32:  </providers> 
Line 33:  </roleManager> 

Bildiğim kadarıyla, gereken her şeyi yaptım. Farklı olan tek şey, AD

Bağlamak için özel bir üyelik kullanıyorum özel bir üyelik kullanıyorum? MVC5 yaklaşımı değiştirdi mi?

cevap

0

Evet. MVC 5, Kimlik kullanır, Rol sağlayıcıları bir ASP.NET Üyelik kavramıdır. Kimlikte rol sağlayıcılara ihtiyacınız yoktur, çünkü sizin için rolleri kontrol etmenizi sağlar. Bu, projenizdeki bir varlıktır (veya en azından IdentityRole alt sınıfına sahipseniz bu olabilir), böylece istediğiniz her şeyi yapabilirsiniz.

+0

Bu ikisi arasında hareket etmek için kolay bir yol var mı? Identity Role span sayfalarında/kullanarak bulduğum tüm örnekler! Bir Eylem üzerinde bir Yetkilendirme özniteliğine karşı kontrol etmek istediğim roller ve eylemler içeren özel tablolarım var. Oturum açarken tüm rolleri UserPrincipal nesnesine karşı kaydetmek istiyorum ve bunu oturum boyunca kullanıyorum. –

0

Hala roleManager'ı ve özel rol sağlayıcınızı kullanabilirsiniz. Sadece müdürünüzü RolePrincipal yazacak şekilde ayarlamanız yeterli. Bunu IAuthenticationFilter üzerinde yapabilir ve global.asax'a kaydedebilirsiniz. Bazı örnek kod için şu iki bağlantıya bakın: RolePrincipal/ IAuthenticationFilter

İlgili konular