MVC 中的会话管理

问题描述 投票:0回答:4

我是 MVC 新手。我正在 MVC4 Razor 中创建新的 WebApplication。我想维护所有页面的用户登录会话。谁能用一个小例子解释一下如何维护 MVC 中所有视图的会话。

c# .net asp.net-mvc asp.net-mvc-4 session-management
4个回答
21
投票

会话管理很简单。 Session 对象在 MVC 控制器内部和

HttpContext.Current.Session
中可用。这是同一个对象。这是如何使用 Session 的基本示例:

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

阅读

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

回答你的问题

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

查看表单身份验证以实现高度安全的身份验证模型。


更新:对于较新版本的 ASP.NET MVC,您应该使用 ASP.NET Identity Framework。请查看这篇文章


4
投票

这是一个例子。 假设我们要在检查用户验证后管理会话, 因此,对于这个演示,我只是硬编码检查有效用户。 账户登录

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

在索引页上

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

退出按钮

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

3
投票

您从事过Asp.Net应用程序吗? 使用表单身份验证,您可以轻松维护用户会话。

找到以下给出的链接供您参考: http://www.codeproject.com/Articles/578374/AplusBeginner-27splusTutorialplusonplusCustomplusF http://msdn.microsoft.com/en-us/library/ff398049(v=vs.100).aspx


0
投票

设置会话

public IActionResult SetState()
{
    // State Save on 
    string name = "ITI";
    int age = 23;
    HttpContext.Session.SetString("StudentName", name);
    HttpContext.Session.SetInt32("StudentAge", age);

    return Content("Data Saved");
}

获取会话

public IActionResult GetState()
{
    string Name = "NULL";
    int Age = 0;
    if (HttpContext.Session.GetString("StudentName") != null)
    {
        Name = HttpContext.Session.GetString("StudentName");
        Age = (int)HttpContext.Session.GetInt32("StudentAge");
        return Content($"Get Data Success, Name = {Name} \t Age = {Age}");
    }
    return Content($"Get Data Not Success, Name = {Name} \t Age = {Age}");
}
© www.soinside.com 2019 - 2024. All rights reserved.