2017-10-21 46 views
0

Dans MVC, lors de l'écriture d'un projet, il écrit un scénario de connexion, l'écran de connexion, le registre et tout le reste.Rediriger après la connexion dans mvc5

J'ai créé la page d'administration, mais avant d'aller à la page si je n'ai pas créé de cookie, envoyez-moi la page de connexion. Je veux le faire après vous être connecté. Je ne sais pas comment rediriger vers la page d'administration après la connexion.

Vous avez le code lui-même qui écrit le viewbag.retutnurl pendant que vous construisez un projet, mais je Je ne sais pas ce qu'est le contrôleur. Maintenant, je ne sais pas d'où vient la valeur.

Si quelqu'un sait exactement et fait, s'il vous plaît aviser.

+0

Utilisez-vous l'authentification générée ou la vôtre? – Nick

+0

J'utilise l'authentification générée – hamed

Répondre

0

Dans la méthode par défaut générée modifier la première case, qui exécute lorsque la connexion est réussie, et vous ajoutez la redirection personnalisée ici comme ceci:

switch (result) 
      { 
       case SignInStatus.Success: 
        return RedirectToAction("Index", "Admin", null); // new code 
       case SignInStatus.LockedOut: 
        return View("Lockout"); 
       case SignInStatus.RequiresVerification: 
        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false }); 
       case SignInStatus.Failure: 
       default: 
        // If the user does not have an account, then prompt the user to create an account 
        ViewBag.ReturnUrl = returnUrl; 
        ViewBag.LoginProvider = loginInfo.Login.LoginProvider; 
        return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.Email }); 
      } 

Et dans votre classe admin vous devez mettre la [Authorize] annotation de données

//admin controller 
[Authorize] 
public ActionResult Index() 
     { 

      return View(); 
     } 
0

Vous pouvez essayer l'une de ces deux méthodes pour y remédier.

public ActionResult Index() { 
    return RedirectToAction("AdminAction"); 
    //Or you can try this 
    return RedirectToAction("whateverAction", "whateverController"); 
} 
+0

En mvc, lorsque vous créez un projet, il génère tous les scénarios de connexion, et génère même des bases de données. Il se fixera un login de redirection vers la page d'accueil et plusieurs returnUrl. On ne sait pas où ils sont. Maintenant je veux changer cette valeur de la page d'accueil à la page d'administration Je ne veux pas changer ce que j'ai écrit moi-même parce qu'il n'est pas Login ActionResult. C'est la tâche hamed