• 如何实现计数器


    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();
                }

            }

  • 相关阅读:
    如何区分 PaaS、IaaS 、SaaS?
    IP黑名单
    VMware vSphere 6 序列号
    什么是DMZ区域,DMZ区域的作用与原理
    PM2 进程管理工具
    解决Centos6 2021年后yum失效问题
    解决: Got permission denied while trying to connect to the Docker daemon socket
    Windows原版镜像
    使用LemonBench工具对Linux服务器进行综合评测
    使用 Packet Sender 发送TCP包
  • 原文地址:https://www.cnblogs.com/ahuang1118/p/172566.html
Copyright © 2020-2023  润新知