我对ASP.NET MVC应用程序有这样的要求:
应该关闭身份验证之前创建的会话,并且应该启动具有新ID的新会话
所以它应该像这样工作:
让我们看看控制器:
public ActionResult Login(string token) {
Session.Abandon(); // I want new session!
// Some auth stuff
Session["this"] = "x";
Session["that"] = "y";
return View();
}
在调试时,我可以看到会话值“this”和“that”设置为“x”和“y”。但是现在我们来看看这个方法使用:
@{
var @this = Session["this"]; // Wut? @this is null
var that = Session["that"]; // Wut? that is null
}
所以,有点挖掘给了我答案:
放弃导致引发End事件。将在下一个请求中引发新的Start事件。 https://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon%28v=vs.110%29.aspx
生命周期看起来像这样:
完全不能接受。我怎么能克服这个?
答案 0 :(得分:0)
我希望此代码可以解决您的问题;
var XYZ= HttpContext.Current.Session["this"];
OR 你可以使用' TempData'为了你的目的。
var XYZ== TempData["this"].ToString();