问题#1
我想知道我什么时候应该使用:
Session.Abandon() //当我在跟踪期间和调用它之后使用它时 - 我发现会话仍然有一个值.
什么时候我应该使用:
我应该何时使用每种特定方法?
我在页面加载中检查会话是否不等于null.如果session等于null,我想清除会话并重定向到登录页面?
我应该使用这样的东西:
private void initSession()
{
Session.Clear();
Session.Abandon();
Response.Redirect("LoginPage.aspx");
}
Run Code Online (Sandbox Code Playgroud) 有没有之间的差异Session.Clear()和Session.RemoveAll()?
描述和文档页面似乎完全相同,但我假设必须有一些创建两个函数的原因,我是对的吗?
我正在使用一些应该在用户完成后终止的会话.我偶然发现了这三场杀手.何时是使用这些的最佳时间,因为我使用会话的时间比不是.另外,还有其他会话终止我不知道吗?
MVC菜鸟在这里。
当前,我有以下代码通过AJAX加载页面时会触发HomeController:
namespace ETTData.Controllers
{
public class HomeController : Controller
{
[HttpPost]
public ContentResult clearSessions()
{
var currentSession = System.Web.HttpContext.Current.Session;
System.Diagnostics.Debug.WriteLine("BEFORE: " + currentSession.Timeout);
currentSession.Abandon();
//currentSession.RemoveAll();
//currentSession.Clear();
System.Diagnostics.Debug.WriteLine("AFTER : " + currentSession.Timeout);
return new ContentResult { Content = "OK", ContentType = "text/plain" };
}
}
}
Run Code Online (Sandbox Code Playgroud)
debug.WriteLine的输出是:
之前:35
之后:35
所以你可以看到它有35对之前还有35对后,当它不应该等于什么,因为我用currentSession.Abandon(); 在调用该输出之前。
我通过Global.asax.cs文件设置会话超时:
namespace ETTData
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Session_Start(Object sender, EventArgs …Run Code Online (Sandbox Code Playgroud)