1

J'ai créé asp.net mvc 4 internet app. Comme vous le savez, il y a méthode standard d'autorisation là par websecurity.login intérieur action login AccountControllerasp.net mvc 4 websecurity deux étapes de connexion

 if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
     { 
      return RedirectToLocal(returnUrl); 
     } 

Après WebSecurity.Login, si le nom d'utilisateur et mot de passe sont faciles à utiliser correctement devenir connecté. Mais je veux 2 étapes de connexion. Donc, après WebSecurity.Login, si le nom d'utilisateur et le mot de passe sont corrects, l'utilisateur va à une autre page où il/elle doit entrer un code spécial et seulement après que cet utilisateur (si le code est correct) soit connecté. Donc, la question que je peux faire, en réécrivant la classe websecurity, sans créer de fournisseur d'appartenance personnalisé?

Répondre

2

L'espace de noms System.Web.Security a une classe Membership qui contient une méthode qui valide ValidateUser sans vous connecter à l'utilisateur Vous pouvez l'utiliser pour rediriger vers la deuxième page d'étape:.

if (Membership.ValidateUser(model.UserName, model.Password)) 
{ 
    // redirect to step 2... 
} 

Gardez à l'esprit que Membership se rapportera au fournisseur d'appartenances par défaut enregistré dans le web.config, que je crois ressemble à ceci dans votre cas:

<membership defaultProvider="simple"> 
    <providers> 
     <clear/> 
     <add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/> 
    </providers> 
</membership> 
+0

Salut, j'ai vérifié http://msdn.microsoft.com/en-us/bibliothèque/gg547 905 (v = VS.99) .aspx, il n'existe aucune méthode ValidateUser dans la classe Websecurity. –

+0

Désolé, je voulais dire l'espace de noms Web.Security ... :) J'ai mis à jour la réponse. – Tallmaris