Track Last Login of a WebSite Visitor


Introduction

 

Some web site administrators need to track user's last login date and time. There may be many solutions for this like updating the database through a landing page or a user's profile page or even any other page where the user lands first.

 

Even I have used a couple of ways for this but finally found a time mechanism. Maybe this is not too good but it is the best for me.

 

If we write some code in code-behind for this, then the query will execute each time the user navigates to the web site; this will increase the site response time. So, what's now? Let's take a look at my idea.

 

Sample Database

 

Look at the sample database table named 'users' having user account details like username, password, joining_date, last_login_date etc.

 

image002.jpg
 

Follow the steps:

 

Step 1

 

Add a Global.asax file in your web project.

 

Step 2

 

Add the following namespaces in Global.asax.

 

<%@ Import Namespace="System.Data.SqlClient" %>

<%@ Import Namespace="System.Data" %>

 

Step 3

 

Place the following code in 'Session_Start()' event.

 using (SqlConnection connection = new SqlConnection(GetConnectionString()))
        {            string dateandtime = DateTime.Now.ToString();            string loggedusername = HttpContext.Current.User.Identity.Name;
           
string sql = "UPDATE users SET last_login_date=@dateandtime WHERE username=@loggedusername";            connection.Open();            SqlCommand cmd = new SqlCommand(sql, connection);
           
SqlParameter[] pram = new SqlParameter[2];
           
pram[0] = new SqlParameter("@dateandtime", SqlDbType.VarChar, 49);
           
pram[1] = new SqlParameter("@loggedusername", SqlDbType.VarChar, 49);

            pram[0].Value = dateandtime;
           
pram[1].Value = loggedusername;

            for (int i = 0; i < pram.Length; i++)
           
{
               
cmd.Parameters.Add(pram[i]);
           
}
           
cmd.ExecuteNonQuery();
       
}

 

Step 4

 

Define the 'GetConnectionString()' function.

         public string GetConnectionString()
       
{

            return System.Configuration.ConfigurationManager.ConnectionStrings["ConnStrName"].ConnectionString;

        }

 

That's all about the sample update of the last login date and time of a user in the database without effecting speed of website.

 

HAVE A HAPPY CODING!!


Similar Articles