web-dev-qa-db-fra.com

Gestion de session dans MVC

Je suis nouveau dans MVC. Je crée une nouvelle WebApplication dans MVC4 Razor. Je souhaite conserver la session de connexion utilisateur pour toutes les pages. Quelqu'un peut-il m'expliquer comment maintenir la session pour toutes les vues dans MVC avec un petit exemple.

11
SanketS

La gestion de session est simple. L'objet de session est disponible dans le contrôleur MVC et dans HttpContext.Current.Session. C'est le même objet. Voici un exemple de base de l'utilisation de Session:

Écrire

Session["Key"] = new User("Login"); //Save session value

Lis

user = Session["Key"] as User; //Get value from session

Répondre à votre question

if (Session["Key"] == null){
   RedirectToAction("Login");
}

Consultez Authentification par formulaire pour implémenter un modèle d'authentification hautement sécurisé.


MISE À JOUR: Pour les versions plus récentes d'ASP.NET MVC, vous devez utiliser ASP.NET Identity Framework. Veuillez vérifier cet article .

19
Andrei

Voici un exemple. Disons que nous voulons gérer la session après avoir vérifié la validation de l'utilisateur, donc pour cette démo uniquement, je vérifie le codage en dur de l'utilisateur valide. Connexion au compte

public ActionResult Login(LoginModel model)
        {
            if(model.UserName=="xyz" && model.Password=="xyz")
            {
                Session["uname"] = model.UserName;
                Session.Timeout = 10;
                return RedirectToAction("Index");
            }
}

Sur la page d'index

public ActionResult Index()
        {
            if(Session["uname"]==null)
            {
                return Redirect("~/Account/Login");
            }
            else
            {
                return Content("Welcome " + Session["uname"]);
            }
        }

Bouton de déconnexion

Session.Remove("uname");
return Redirect("~/Account/Login");
4
Vedprakash_Comp

Avez-vous travaillé sur l'application Asp.Net? En utilisant l'authentification par formulaire, vous pouvez facilement maintenir la session utilisateur.

Trouvez les liens ci-dessous pour votre référence: http://www.codeproject.com/Articles/578374/AplusBeginner-27splusTutorialplusonplusCustomplusFhttp://msdn.Microsoft.com/en-us /library/ff398049(v=vs.100).aspx

3
Mak