J'essaie d'implémenter un gestionnaire de rôles personnalisé dans une application MVC5 en utilisant le Custom Role Provider Tutorial suivant.Gestionnaire de rôles personnalisé/fournisseur
J'ai créé mon fournisseur de rôles personnalisé surpassant les 2 fonctions requises.
namespace Models.Security
{
public class CustomRoleProvider : RoleProvider
{
/// logic
public override string[] GetRolesForUser(string username)
{
/// logic
public override bool IsUserInRole(string username, string roleName)
{
Il me faut ensuite modifier ma config Web pour utiliser ce nouveau fournisseur ...
<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>
Cependant quand je tente accéder à ma demande, je reçois l'erreur suivante:
Parser erreur Message: Impossible de charger le type 'Models.Security.CustomRoleProvider'.
Source Error:
Line 29: <providers>
Line 30: <clear />
Line 31: <add name="CustomRoleProvider" type="Models.Security.CustomRoleProvider"/>
Line 32: </providers>
Line 33: </roleManager>
Pour autant que je sache, j'ai fait tout ce qui est nécessaire. La seule chose qui est différente est que j'utilise une adhésion personnalisée liant à AD
<authentication mode="Forms">
<forms name=".ADAuthCookie" loginUrl="~/Account/Login" timeout="200" slidingExpiration="false" protection="All" />
</authentication>
<membership defaultProvider="ADMembershipProvider">
<providers>
<clear />
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName" />
</providers>
</membership>
Y at-il autre chose que je dois faire? Est-ce que MVC5 a changé l'approche?
Alors, y a-t-il un moyen facile de se déplacer entre les deux? Tous les exemples que j'ai trouvés sur/en utilisant des pages d'envergure de rôle d'identité! J'ai des tables personnalisées avec des rôles et des actions créés que je veux vérifier par rapport à un attribut d'autorisation sur une action. Je veux vraiment enregistrer tous les rôles sur mon objet UserPrincipal lors de la connexion, puis l'utiliser tout au long de la session. –