如何实现计数器

Global.asax.cs文件中的分别输入以下代码:
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();
            }

        }

原文地址:https://www.cnblogs.com/ahuang1118/p/172566.html