MVC est livré avec un ActionFilter Pour réaliser l’authentification d’identité dans Asp.NET WebForm, Microsoft nous propose trois options, la plus couramment utilisée étant notre authentification Form, qui doit être configurée avec les informations correspondantes. Par exemple, les informations de configuration suivantes :
Cela signifie que notre page de connexion est Login.aspx, la page par défaut après la connexion réussie est Default.aspx, et que nos informations utilisateur adoptent deux méthodes : la vérification et le chiffrement. Et le plus important, c’est que nous devons écrire la méthode d’autorisation (l’autorisation ci-dessous doit être écrite, sinon il est inutile d’utiliser uniquement l’authentification Forms puis de définir les attributs pertinents), refuser tous les utilisateurs anonymes, et seuls les utilisateurs connectés peuvent y accéder normalement. Ensuite, nous activons le bouton de connexion pour écrire le nom d’utilisateur dans le cookie (c’est-à-dire exécuter FormsAuthentication.SetAuthCookie(name, false) ; Voilà. 0 Dans Asp.Net MVC, nous pouvons aussi utiliser l’authentification Forms, mais si vous le faites dans WebForm, cela ne fonctionnera pas. Par exemple, vous configurez les informations comme ceci :
Vous configurez une connexion dans votre Login.aspx pour déclencher la connexion dans le AccountController afin de se connecter, où le code de connexion :
Après cela, vous constaterez que votre connexion ne sera pas exécutée. Quelle en est la raison ? Pourquoi le même réglage ne fonctionne-t-il pas dans MVC ? La raison est que le mécanisme est différent, car vous avez configuré une méthode d’autorisation qui rend la connexion inaccessible. Alors, comment fait-on ? En fait, dans Asp.Net MVC, nous avons une meilleure façon de faire tout cela, nous n’avons pas besoin d’une méthode d’autorisation, ce qui signifie que nos informations de configuration ressemblent à ceci :
Il n’est pas nécessaire de préciser que les utilisateurs anonymes ne peuvent pas se connecter, etc. Bien sûr, vous constaterez que cela ne suffit pas, mais nous devons indiquer au système lesquels doivent être connectés pour y accéder. Vous pensez peut-être, o()〈))) Oh, c’est trop de problème. Ce n’est pas ça, c’est très simple, il suffit de cocher [Authorize] sur l’Action à authentifier. Par exemple, j’ai deux pages dans le dossier Accueil, Index et Home, et je veux que l’Index soit authentifié pour y accéder, mais Home ne le permet pas, donc je n’ai qu’à donner à l’Index la balise Action [Authorize], c’est-à-dire :
Cela permet d’accéder à Index après la connexion, tandis que Home n’a pas besoin d’être connecté. Si vous devez autoriser des rôles, vous pouvez spécifier le rôle en marquant Authorize (par exemple [Authorize(Role=Administrators)]), mais vous devez utiliser le mécanisme d’adhésion fourni par Microsoft, car votre rôle ne peut exister pour rien, mais existe dans la base de données correspondante, comme j’ai mentionné dans un autre blog. Personnaliser l’ActionFilter Parfois, vous ne pouvez pas atteindre ce type d’authentification, ou si vous pensez ne pas être assez flexible, cela n’a pas d’importance, Asp.Net MVC vous permet de personnaliser votre ActionFilter. Par exemple, je personnalise maintenant l’authentification :
Si une gestion des utilisateurs est nécessaire, je définirai les filtres liés au rôle :
En fait, vous constaterez que les deux attributs ci-dessus ont été résolus par l’Authorized intégré de MVC, et ici nous vous disons principalement que vous pouvez l’étendre si nécessaire. Eh bien, c’est tout pour aujourd’hui ! Téléchargement du code source : FormFormsAuthenticationMvc
|