Débarrassez-vous des cas le nom d'utilisateur sensible fournisseur d'appartenances personnalisé
Question
Je mis en place un fournisseur d'appartenances personnalisé dans ASP.net MVC, et ne peut pas comprendre comment faire le nom d'utilisateur non sensible à la casse à signin. Ainsi, par exemple, « Salomon » pourrait se connecter, mais « salomon » ne pouvait pas.
Ma mise en œuvre est très os nus. Je viens d'écrire essentiellement code pour ValidateUser () et Changer mot de passe ().
Merci pour l'aide!
La solution
Shimms est à mi-chemin.
Fractionnement d'une opération logique entre deux « niveaux » est pas une bonne pratique.
Une opération logique doit être atomique. Il suffit donc de réduire à la fois dans la requête ...
par exemple.
where Lower(username)=Lower(@username)
Autres conseils
Convertir le nom d'utilisateur à sa version minuscule, puis le comparer à la version minuscule du nom d'utilisateur dans la base de données. L'ANSI SQL serait:
WHERE LOWER(username) = :username
Alimenter le paramètre nom d'utilisateur comme:
... = username.ToLower();