如何?計數器

來源:互聯網
上載者:User
在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();
            }
        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.