I'm assuming you're using an update panel around your timer or else this isn't really going to work;
protected void Timer1_Tick(object sender, EventArgs e)
{
DateTime timeout = DateTime.Parse(Session["timeout"].ToString());
DateTime now = DateTime.Now;
if (0 > DateTime.Compare(now, timeout))
{
TimeSpan ts = timeout - now;
int mins = ts.Minutes + 60 * ts.Hours; ;
int secs = ts.Seconds;
Label5.Text = String.Format("Time remaining: {0:D2} minutes {1:D2} seconds", mins, secs);
}
else
{
Response.Redirect("target.aspx");
}
}