我创建了一个ASP.NET MVC应用程序,它在用户登录后将其用户信息保存在会话中。没有什么花哨的,只是一个简单的应用程序。.NET会话在构建后未保存
最近我注意到了这个奇怪的行为,Session在重建后不会保存第一次运行。这是一致的。
下面是一个例子:
- 重建方案
- 开幕登录页面,输入证书
- 登录,在验证,重定向到仪表板,但仪表盘说没有会话发现
- 返回到登录输入相同的凭证
- 登录验证,重定向到仪表板没有问题
在一个完美的情况下,不应该有在项目#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();
}
你能在2行动中显示相关的代码吗?您如何存储价值和重定向以及您如何阅读价值? –
您可以添加检查仪表板和验证块中会话对象的代码吗? – christiandev
我添加了代码,修剪了一些不相关的代码。这几乎是如何使用会话。 – xar