2012-12-14 2 views
0

J'implémente mon fournisseur de rôle personnalisé. J'ai besoin d'accéder à des données supplémentaires dans les fonctions suivantes et je ne suis pas sûr que ce soit possible. Est-il possible d'instancier la classe CustomRoleProvider par code et définir certaines propriétés pour transmettre les données supplémentaires? Si ce n'est pas possible, quelles sont les autres alternatives pour réaliser la gestion des rôles personnalisés? Merci pour toute contribution.Est-il possible de transmettre des données supplémentaires à RoleProvider personnalisé dans MVC?

public class CustomRoleProvider : RoleProvider 
{ 
    public override string[] GetRolesForUser(string username) 
    { } 

    public override bool IsUserInRole(string username, string roleName) 
    { } 
} 

Répondre

1

Vous pouvez utiliser l'injection de dépendance pour injecter une dépendance de configuration. Quelque chose comme:

public class CustomRoleProvider : RoleProvider 
{ 
    [Dependency]  
    public IRoleProviderConfig Config { get; set; } 

    public override string[] GetRolesForUser(string username) 
    { 
     int value = Config.GetXyz(); 
    } 

    public override bool IsUserInRole(string username, string roleName) 
    { } 
} 

Vous pouvez en savoir plus sur l'injection de dépendance ici: http://blogs.microsoft.co.il/blogs/gilf/archive/2010/10/17/dependency-injection-in-mvc-3-was-made-easier.aspx

Questions connexes