2013-01-04 67 views
1

我创建了一个ASP.NET MVC应用程序,它在用户登录后将其用户信息保存在会话中。没有什么花哨的,只是一个简单的应用程序。.NET会话在构建后未保存

最近我注意到了这个奇怪的行为,Session在重建后不会保存第一次运行。这是一致的。

下面是一个例子:

  1. 重建方案
  2. 开幕登录页面,输入证书
  3. 登录,在验证,重定向到仪表板,但仪表盘说没有会话发现
  4. 返回到登录输入相同的凭证
  5. 登录验证,重定向到仪表板没有问题

在一个完美的情况下,不应该有在项目#3,因为在验证会话设置为标志,一个用户登录应用程序的任何错误。

我在想,如果我在这里想念的东西或这只是Session的工作方式。我希望有人能为我揭开一些光。

[HttpGet] 
public ActionResult Index(){ 
    HttpContext.Session.Remove("UserIn"); 
    return View(); 
} 
[HttpPost] 
public ActionResult Index(string username, string password){ 
    bool validUser = true; 
    if(validUser){ 
    HttpContext.Session["UserIn"] = username; 
    } 
    return RedirectToAction("Dashboard"); 
} 

[HttpGet] 
public ActionResult Dashboard(){ 
    if(HttpContext.Session["UserIn"] == null){ 
    throw new Exception("No session found"); 
    } 
    return View(); 
} 
+0

你能在2行动中显示相关的代码吗?您如何存储价值和重定向以及您如何阅读价值? –

+0

您可以添加检查仪表板和验证块中会话对象的代码吗? – christiandev

+0

我添加了代码,修剪了一些不相关的代码。这几乎是如何使用会话。 – xar

回答