Dans un fournisseur de rôle personnalisé (héritant de RoleProvider) dans .NET 2.0, la méthode IsUserInRole a été codé en dur pour revenir toujours vrai:Roles.IsUserInRole se comporte-t-il comme prévu dans le scénario simple suivant?
public override bool IsUserInRole(string username, string roleName) { return true; }
Dans une application ASP.NET configuré pour utiliser ce fournisseur de rôle, le code suivant renvoie vrai (comme prévu):
Roles.IsUserInRole("any username", "any rolename"); // results in true
Cependant, le code suivant retourne false:
Roles.IsUserInRole("any rolename"); // results in false
N Notez que User.IsInRole ("any rolename") retourne aussi false.
- Est-ce le comportement attendu?
- Est-il incorrect de supposer que la surcharge qui prend uniquement un nom de rôle appelle toujours le IsUserInRole surchargé?
Mise à jour: Notez qu'il ne semble pas être un remplacement disponible pour la version qui prend une seule chaîne, ce qui a conduit à mon hypothèse dans # 2.
Très appréciée! J'ai téléchargé l'outil Reflector maintenant, merci de me l'indiquer. Vous aviez raison sur le nom d'utilisateur étant vide, j'utilise l'authentification anonyme, résultant en l'identité System.Security.Principal.GenericIdentity qui se trouve avoir un attribut Name vide. –
Ouais, j'ai tendance à compter sur le réflecteur plus que sur la propre documentation de Microsoft :) –