asp.net跟踪用户信息

时间:2013-09-18 19:15:04

标签: asp.net session cookies

如何跟踪用户信息,sesssion ID,Cookie的最佳方式?一次用于用户会话。 在Default.aspx中:

protected void Page_Load(object sender, EventArgs e)
{
  IF (!isPostPack)
  {
    var sessionValue= System.Web.HttpContext.Current.Request.Cookies["ASP.NET_SessionId"] != null ?                      System.Web.HttpContext.Current.Request.Cookies["ASP.NET_SessionId"].Value : string.Empty;
     cONSOLE.WRITELINE(sessionValue);
    }

}

这不是优化。无论如何只有一次会话iD,每个用户?

1 个答案:

答案 0 :(得分:0)

var sessionValue = System.Web.HttpContext.Current.Request.Cookies["ASP.NET_SessionId"] 
!= null ? 
System.Web.HttpContext.Current.Request.Cookies["ASP.NET_SessionId"].Value : string.Empty;

所有能给你的是ASP.Net用来跟踪会话的标识符。您很少需要直接访问代码。

但假设你想要的东西,它会非常快。为了使其更清洁,您可以:

  • 直接访问RequestHttpContext内无需Page
  • 将值存储在将在页面生命周期中存在的类级变量中。
private string _sessionId;

protected void Page_Load(object sender, EventArgs e)
{
    _sessionId = Request.Cookies["ASP.NET_SessionId"] != null 
        Request.Cookies["ASP.NET_SessionId"].Value : string.Empty;
}

如果你想每个会话只做一次(根据评论):

protected void Session_Start( object sender, EventArgs e )
{
    using( var writer = File.CreateText( @"c:\temp\session-id.txt" ) )
    {
        writer.WriteLine( Session.SessionID );
    }
}