I am new in MVC. I am creating new WebApplication in MVC4 Razor. I want to maintain User Login session for all pages. Can any one Explain me how to maintain session for all views in MVC with small example.
Session management is simple. Session object is available inside MVC controller and in HttpContext.Current.Session
. It is the same object. Here is a basic example of how to use Session:
Write
Session["Key"] = new User("Login"); //Save session value
Read
user = Session["Key"] as User; //Get value from session
Answering your question
if (Session["Key"] == null){
RedirectToAction("Login");
}
Check out Forms Authentication to implement highly secure authentication model.
UPDATE: For newer versions of ASP.NET MVC you should use ASP.NET Identity Framework. Please check out this article.
Here is a Example. Say we want to manage session after checking user validation, so for this demo only I am hard coding checking valid user. On account Login
public ActionResult Login(LoginModel model)
{
if(model.UserName=="xyz" && model.Password=="xyz")
{
Session["uname"] = model.UserName;
Session.Timeout = 10;
return RedirectToAction("Index");
}
}
On Index Page
public ActionResult Index()
{
if(Session["uname"]==null)
{
return Redirect("~/Account/Login");
}
else
{
return Content("Welcome " + Session["uname"]);
}
}
On SignOut Button
Session.Remove("uname");
return Redirect("~/Account/Login");
Have you worked on Asp.Net application? Using Forms Authentication you can easily maintain user session.
Find the below given links for your reference: http://www.codeproject.com/Articles/578374/AplusBeginner-27splusTutorialplusonplusCustomplusF http://msdn.microsoft.com/en-us/library/ff398049(v=vs.100).aspx
来源:https://stackoverflow.com/questions/19181085/session-management-in-mvc