protected void Application_Start(Object sender, EventArgs e)
{
SqlConnection con;
SqlCommand cmd;
// Get the connection string from the existing key in Web.config
con = new SqlConnection(ConfigurationSettings.AppSettings["cnFriends.ConnectionString"]);
cmd = new SqlCommand("SELECT Visitors FROM Counter", con);
con.Open();
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Application["counter"] = ((int)Application["counter"]) + 1;
Application.UnLock();
}
try
{
// Retrieve the counter
Application["counter"] = (int) cmd.ExecuteScalar();
}
finally
{
con.Close();
}
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
// Cast the sender to the application
HttpApplication app = (HttpApplication)sender;
// Only replace the context if it has already been handled
// by forms authentication module (user is authenticated)
if (app.Request.IsAuthenticated)
{
SqlConnection con;
string sql;
SqlCommand cmd;
string id = Context.User.Identity.Name;
con = new SqlConnection(ConfigurationSettings.AppSettings["cnFriends.ConnectionString"]);
sql = "SELECT IsAdministrator FROM [User] WHERE UserId='{0}'";
sql = String.Format(sql, id);
cmd = new SqlCommand(sql, con);
con.Open();
// Ensure closing the connection
try
{
object admin = cmd.ExecuteScalar();
// Was it a valid UserID?
if (admin != null)
{
GenericPrincipal ppal;
string[] roles;
// If IsAdministrator field is true, add both roles
if (((bool)admin) == true)
{
roles = new string[] {"User", "Admin"};
}
else
{
roles = new string[] {"User"};
}
ppal = new GenericPrincipal(Context.User.Identity, roles);
Context.User = ppal;
}
else
{
// If UserID was invalid, clear the context so he logs on again
Context.User = null;
}
}
catch
{
throw;
}
finally
{
con.Close();
}
}
}
protected void Application_End(Object sender, EventArgs e)
{
SqlConnection con;
SqlCommand cmd;
// Get the connection string from the existing key in Web.config
con = new SqlConnection(ConfigurationSettings.AppSettings["cnFriends.ConnectionString"]);
cmd = new SqlCommand("UPDATE Counter SET Visitors=" + Application["counter"].ToString(), con);
con.Open();
try
{
cmd.ExecuteNonQuery();
}
finally
{
con.Close();
}
}
{
SqlConnection con;
SqlCommand cmd;
// Get the connection string from the existing key in Web.config
con = new SqlConnection(ConfigurationSettings.AppSettings["cnFriends.ConnectionString"]);
cmd = new SqlCommand("SELECT Visitors FROM Counter", con);
con.Open();
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Application["counter"] = ((int)Application["counter"]) + 1;
Application.UnLock();
}
try
{
// Retrieve the counter
Application["counter"] = (int) cmd.ExecuteScalar();
}
finally
{
con.Close();
}
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
// Cast the sender to the application
HttpApplication app = (HttpApplication)sender;
// Only replace the context if it has already been handled
// by forms authentication module (user is authenticated)
if (app.Request.IsAuthenticated)
{
SqlConnection con;
string sql;
SqlCommand cmd;
string id = Context.User.Identity.Name;
con = new SqlConnection(ConfigurationSettings.AppSettings["cnFriends.ConnectionString"]);
sql = "SELECT IsAdministrator FROM [User] WHERE UserId='{0}'";
sql = String.Format(sql, id);
cmd = new SqlCommand(sql, con);
con.Open();
// Ensure closing the connection
try
{
object admin = cmd.ExecuteScalar();
// Was it a valid UserID?
if (admin != null)
{
GenericPrincipal ppal;
string[] roles;
// If IsAdministrator field is true, add both roles
if (((bool)admin) == true)
{
roles = new string[] {"User", "Admin"};
}
else
{
roles = new string[] {"User"};
}
ppal = new GenericPrincipal(Context.User.Identity, roles);
Context.User = ppal;
}
else
{
// If UserID was invalid, clear the context so he logs on again
Context.User = null;
}
}
catch
{
throw;
}
finally
{
con.Close();
}
}
}
protected void Application_End(Object sender, EventArgs e)
{
SqlConnection con;
SqlCommand cmd;
// Get the connection string from the existing key in Web.config
con = new SqlConnection(ConfigurationSettings.AppSettings["cnFriends.ConnectionString"]);
cmd = new SqlCommand("UPDATE Counter SET Visitors=" + Application["counter"].ToString(), con);
con.Open();
try
{
cmd.ExecuteNonQuery();
}
finally
{
con.Close();
}
}