-
如何实现计数器
在Global.asax.cs文件中的分别输入以下代码:
protected void Application_Start(Object sender, EventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
SqlConnection con;
SqlCommand cmd;
![](/Images/OutliningIndicators/InBlock.gif)
// 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)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Application.Lock();
Application["counter"] = ((int)Application["counter"]) + 1;
Application.UnLock();
}
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
// Retrieve the counter
Application["counter"] = (int) cmd.ExecuteScalar();
}
finally
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
con.Close();
}
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
// Cast the sender to the application
HttpApplication app = (HttpApplication)sender;
![](/Images/OutliningIndicators/InBlock.gif)
// Only replace the context if it has already been handled
// by forms authentication module (user is authenticated)
if (app.Request.IsAuthenticated)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
SqlConnection con;
string sql;
SqlCommand cmd;
![](/Images/OutliningIndicators/InBlock.gif)
string id = Context.User.Identity.Name;
![](/Images/OutliningIndicators/InBlock.gif)
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();
![](/Images/OutliningIndicators/InBlock.gif)
// Ensure closing the connection
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
object admin = cmd.ExecuteScalar();
![](/Images/OutliningIndicators/InBlock.gif)
// Was it a valid UserID?
if (admin != null)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
GenericPrincipal ppal;
string[] roles;
![](/Images/OutliningIndicators/InBlock.gif)
// If IsAdministrator field is true, add both roles
if (((bool)admin) == true)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
roles = new string[]
{"User", "Admin"};
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
roles = new string[]
{"User"};
}
![](/Images/OutliningIndicators/InBlock.gif)
ppal = new GenericPrincipal(Context.User.Identity, roles);
Context.User = ppal;
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
// If UserID was invalid, clear the context so he logs on again
Context.User = null;
}
}
catch
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
throw;
}
finally
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
con.Close();
}
}
![](/Images/OutliningIndicators/InBlock.gif)
}
protected void Application_End(Object sender, EventArgs e)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
SqlConnection con;
SqlCommand cmd;
![](/Images/OutliningIndicators/InBlock.gif)
// 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();
![](/Images/OutliningIndicators/InBlock.gif)
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
cmd.ExecuteNonQuery();
}
finally
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
con.Close();
}
}
![](/Images/OutliningIndicators/None.gif)
-
相关阅读:
如何区分 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
润新知