⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.asax.cs

📁 ASP.NET构建的笑傲江湖社区(C#,全源码提供)
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Configuration;
using System.Net;

namespace xajh 
{
	/// <summary>
	/// Global 的摘要说明。
	/// </summary>
	public class Global : System.Web.HttpApplication
	{
		public Global()
		{
			InitializeComponent();
		}

		protected void Application_Start(object sender, EventArgs e)
		{
			CheckSN chksn = new CheckSN();
			string back = chksn.Decrypt3DES(ConfigurationSettings.AppSettings["AppKey"]);
			string[] backs = back.Split('|');
			System.Net.IPAddress addr = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
			if (back == "无效的认证码")
			{
				var.system_reged = "许可证错误";
				return;
			}
			else if (backs[0] != "127.0.0.1" && addr.ToString() != backs[0])
			{
				var.system_reged = "本许可证的注册IP(" + backs[0] + ")不是本服务器的IP(" + addr.ToString() + ")";
				return;
			}
			else if (DateTime.Parse(backs[2]) < DateTime.Now)
			{
				var.system_reged = "本许可证已经过期";
				return;
			}
			else
			{
				var.system_reged = "合法用户";
			}
			var.public_apppath = backs[1];
			var.public_user = backs[3];
			var.public_sn = backs[4];
			var.public_logs = ConfigurationSettings.AppSettings["Logs"];
			var.public_conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + backs[1] + ConfigurationSettings.AppSettings["DataBase"];
			int j;
			DataSet ds = new DataSet();
			OleDbConnection MyConn = new OleDbConnection(var.public_conn);
			MyConn.Open();
			OleDbDataAdapter MyAdapter = new OleDbDataAdapter();
			MyAdapter.SelectCommand = new OleDbCommand();
			MyAdapter.SelectCommand.Connection = MyConn;
			MyAdapter.SelectCommand.CommandText = @"select * from [房间列表]";
			MyAdapter.Fill(ds, "房间列表");
			MyAdapter.SelectCommand.CommandText = @"select * from [系统参数]";
			MyAdapter.Fill(ds, "系统参数");
			MyAdapter.SelectCommand.CommandText = @"select * from [随机事件]";
			MyAdapter.Fill(ds, "随机事件");
			MyAdapter.SelectCommand.CommandText = @"select * from [街市信息]";
			MyAdapter.Fill(ds, "街市信息");
			MyAdapter.SelectCommand.CommandText = @"select * from [马匹列表]";
			MyAdapter.Fill(ds, "马匹列表");
			MyAdapter.SelectCommand.CommandText = @"select * from [待售物品]";
			MyAdapter.Fill(ds, "待售物品");
			MyConn.Close();
			MyConn.Dispose();

			this.Application.Lock();
			foreach (DataRow dr in ds.Tables["房间列表"].Rows)
			{
				string[] saveinfo = new string[4];
				saveinfo[0] = dr["不是会员"].ToString();
				saveinfo[1] = dr["一级会员"].ToString();
				saveinfo[2] = dr["二级会员"].ToString();
				saveinfo[3] = dr["三级会员"].ToString();
				x.RoomInfo roominfo = new x.RoomInfo();
				roominfo.RoomName = dr["房间名称"].ToString();
				roominfo.AutoMan = dr["机器人名"].ToString();
				roominfo.MaxOnline = (int) dr["最大在线"];
				roominfo.MinGrade = (int) dr["等级最小"];
				roominfo.MaxGrade = (int) dr["等级最大"];
				roominfo.MinFGrade = (int) dr["战级最小"];
				roominfo.MaxFGrade = (int) dr["战级最大"];
				roominfo.MinGGrade = (int) dr["会员最小"];
				roominfo.MaxGGrade = (int) dr["会员最大"];
				roominfo.CheckSex = dr["性别限制"].ToString();
				string othercheck = dr["其他限制"].ToString();
				if (othercheck == null || othercheck == "" || othercheck == "(无)")
				{
					roominfo.CheckIn = "(无)";
				}
				else
				{
					roominfo.CheckIn = othercheck;
				}
				roominfo.CanUseWG = (bool) dr["允许动武"];
				roominfo.CanUseThing = (bool) dr["允许物品"];
				roominfo.CanManage = (bool) dr["允许管理"];
				this.Application["byts_xajh_chat_saveinfo_" + dr["id"]] = saveinfo;
				this.Application["byts_xajh_chat_roominfo_" + dr["id"]] = roominfo;
				this.Application["byts_xajh_chat_ranthing_" + dr["id"]] = (int) dr["随机事件"];
				this.Application["byts_xajh_chat_line_" + dr["id"]] = 0;
				this.Application["byts_xajh_chat_online_" + dr["id"]] = new ArrayList();
				ArrayList words = new ArrayList();
				for (j = 0; j < 30; j ++)
				{
					words.Add(new string[9]);
				}
				this.Application["byts_xajh_chat_words_" + dr["id"]] = words;
				var.public_roomlist.Add(dr["id"].ToString());
			}
			string[] tq;
			xajh.x CheckFormat = new xajh.x();
			foreach (DataRow dr in ds.Tables["系统参数"].Rows)
			{
				switch (dr["参数名称"].ToString())
				{
					case "江湖名称":
						var.public_name = dr["参数数值"].ToString();
						break;
					case "进入公告":
						var.public_add = dr["参数数值"].ToString();
						break;
					case "退出公告":
						var.public_del = dr["参数数值"].ToString();
						break;
					case "进入房间":
						var.public_addroom = dr["参数数值"].ToString();
						break;
					case "退出房间":
						var.public_delroom = dr["参数数值"].ToString();
						break;
					case "掉线公告":
						var.public_down = dr["参数数值"].ToString();
						break;
					case "超时公告":
						var.public_timeout = dr["参数数值"].ToString();
						break;
					case "存档间隔":
						var.public_savespan = int.Parse(dr["参数数值"].ToString());
						break;
					case "赛马间隔":
						var.public_horsespan = int.Parse(dr["参数数值"].ToString());
						break;
					case "上限参考":
						var.public_maxfor = dr["参数数值"].ToString();
						break;
					case "PBC等级":
						var.public_pbc = int.Parse(dr["参数数值"].ToString());
						break;
					case "标题等级":
						var.public_title = int.Parse(dr["参数数值"].ToString());
						break;
					case "HTML等级":
						var.public_html = int.Parse(dr["参数数值"].ToString());
						break;
					case "呼叫参数":
						var.public_webicq = CheckFormat.MakeCheck(dr["参数数值"].ToString());
						break;
					case "点歌参数":
						var.public_song = CheckFormat.MakeCheck(dr["参数数值"].ToString());
						break;
					case "战级参考":
						var.public_fightgrade = int.Parse(dr["参数数值"].ToString());
						break;
					case "不是会员":
						var.public_goldmax[0] = dr["参数数值"].ToString();
						break;
					case "一级会员":
						var.public_goldmax[1] = dr["参数数值"].ToString();
						break;
					case "二级会员":
						var.public_goldmax[2] = dr["参数数值"].ToString();
						break;
					case "三级会员":
						var.public_goldmax[3] = dr["参数数值"].ToString();
						break;
					case "执政偷盗":
						tq = dr["参数数值"].ToString().Split('|');
						for (int i = 0; i < 4; i ++)
						{
							var.public_t1[i] = int.Parse(tq[i]);
						}
						break;
					case "在野偷盗":
						tq = dr["参数数值"].ToString().Split('|');
						for (int i = 0; i < 4; i ++)
						{
							var.public_t2[i] = int.Parse(tq[i]);
						}
						break;
					case "执政偷钱":
						tq = dr["参数数值"].ToString().Split('|');
						for (int i = 0; i < 4; i ++)
						{
							var.public_t3[i] = int.Parse(tq[i]);
						}
						break;
					case "在野偷钱":
						tq = dr["参数数值"].ToString().Split('|');
						for (int i = 0; i < 4; i ++)
						{
							var.public_t4[i] = int.Parse(tq[i]);
						}
						break;
					case "街市分类":
						var.public_streettype = dr["参数数值"].ToString();
						break;
					case "物品分类":
						var.public_shoptype = dr["参数数值"].ToString();
						break;
					case "传音参数":
						var.public_fly = CheckFormat.MakeCheck(dr["参数数值"].ToString());
						break;
					case "赌博参数":
						var.public_bet = CheckFormat.MakeCheck(dr["参数数值"].ToString());
						break;
					case "SMTP地址":
						var.public_mailServer = dr["参数数值"].ToString();
						break;
					case "使用邮件":
						if (dr["参数数值"].ToString().ToLower() == "true")
						{
							var.public_mailUse = true;
						}
						else
						{
							var.public_mailUse = false;
						}
						break;
					case "发件地址":
						var.public_mailFrom = dr["参数数值"].ToString();
						break;
					case "发件人名":
						var.public_mailFromName = dr["参数数值"].ToString();
						break;
					case "回复地址":
						var.public_mailReplyTo = dr["参数数值"].ToString();
						break;
					case "提问等级":
						var.public_question = int.Parse(dr["参数数值"].ToString());
						break;
					case "管理门派":
						var.public_adminclass = dr["参数数值"].ToString();
						break;
					case "开放竞争":
						if (dr["参数数值"].ToString().ToLower() == "true")
						{
							var.public_adminfree = true;
						}
						else
						{
							var.public_adminfree = false;
						}
						break;
					default:
						break;
				}
			}
			string[] randominfo;
			foreach (DataRow dr in ds.Tables["随机事件"].Rows)
			{
				randominfo = new string[7];
				randominfo[0] = dr["提示"].ToString();
				randominfo[1] = dr["图片"].ToString();
				randominfo[2] = dr["随机开始"].ToString();
				randominfo[3] = dr["随机结束"].ToString();
				randominfo[4] = dr["操作字段"].ToString();
				randominfo[5] = dr["运算符号"].ToString();
				randominfo[6] = dr["显示语句"].ToString();
				var.public_randomhappen.Add(randominfo);
			}
			var.public_street = ds.Tables["街市信息"];
			DataColumn[] mycol = new DataColumn[1];
			mycol[0] = var.public_street.Columns["id"];
			var.public_street.PrimaryKey = mycol;
			var.public_horseinfo = ds.Tables["马匹列表"];
			mycol = new DataColumn[1];
			mycol[0] = var.public_horseinfo.Columns["id"];
			var.public_horseinfo.PrimaryKey = mycol;
			var.public_shopthing = ds.Tables["待售物品"];
			mycol = new DataColumn[1];
			mycol[0] = var.public_shopthing.Columns["id"];
			var.public_shopthing.PrimaryKey = mycol;
			ds.Dispose();
			if (var.public_horseinfo.Rows.Count != 0 && var.public_horsespan != 0)
			{
				new xajh.horse_start();
			}
			var.public_starttime = DateTime.Now;
			this.Application.UnLock();
			if (var.log_system == true)
			{
				if (!Directory.Exists(var.public_apppath + var.public_logs))
				{
					Directory.CreateDirectory(var.public_apppath + var.public_logs);
				}
				StreamWriter SW;
				if (File.Exists(var.public_apppath + var.public_logs + "System.cs"))
				{
					SW = File.AppendText(var.public_apppath + var.public_logs + "System.cs");
				}
				else
				{
					SW = File.CreateText(var.public_apppath + var.public_logs + "System.cs");
				}
				SW.WriteLine(DateTime.Now + "\t正在载入 \"" + var.public_apppath + "bin\\xajh.dll\"......\r\n\t\t\t笑傲江湖服务器端程序启动成功!");
				SW.Close();
			}
		}

		protected void Session_Start(object sender, EventArgs e)
		{
			this.Session.Timeout = 2;
		}

		protected void Application_BeginRequest(object sender, EventArgs e)
		{
			this.Response.Cache.SetExpires (DateTime.Now);
			this.Response.Cache.AppendCacheExtension("no-cache");
			this.Response.Write ("<!--   离开你不是我要的结局,爱你是我一生的选择。 -- 变异天使(Zhou Yangsi)   -->\r");
			if (var.system_reged != "合法用户")
			{
				this.Response.Write (var.system_reged + ",禁止使用!请联系作者喳喳鸟(变异天使)购买正版产品!byts@msn.com");
				this.Response.End();
			}
		}

		protected void Application_EndRequest(object sender, EventArgs e)
		{

		}

		protected void Application_AuthenticateRequest(object sender, EventArgs e)
		{

		}

		protected void Application_Error(object sender, EventArgs e)
		{
			if (var.log_error == true)
			{
				if (!Directory.Exists(var.public_apppath + var.public_logs))
				{
					Directory.CreateDirectory(var.public_apppath + var.public_logs);
				}
				StreamWriter SW;
				if (File.Exists(var.public_apppath + var.public_logs + "Error.cs"))
				{
					SW = File.AppendText(var.public_apppath + var.public_logs + "Error.cs");
				}
				else
				{
					SW = File.CreateText(var.public_apppath + var.public_logs + "Error.cs");
				}
				SW.WriteLine(DateTime.Now + "\t\"" + this.Request.Path + "\"发生未知错误......\r\n   错误类型:" + this.Server.GetLastError().Message + "\r\n   错误信息:\r\n   " + this.Server.GetLastError().InnerException + "\r\n================================================================================================");
				SW.Close();
			}
		}

		protected void Session_End(object sender, EventArgs e)
		{
			if (this.Session["info"] != null)
			{
				this.Application.Lock();
				x.UserInfo info = (x.UserInfo) this.Session["info"];
				var.public_onlineinfo.Remove(info.UserName);
				var.public_online --;
				if (info.RoomID != "false")
				{
					((ArrayList) this.Application["byts_xajh_chat_online_" + info.RoomID]).Remove(info.UserName);
					var.public_inchat --;
					string[] aword = new string[9];
					aword[0] = "del";
					aword[1] = info.UserName;
					aword[2] = "";
					aword[3] = "";
					aword[4] = "";
					aword[5] = "";
					aword[6] = var.public_down;
					aword[7] = "掉线";
					aword[8] = DateTime.Now.ToLongTimeString();
					ArrayList words = (ArrayList) this.Application["byts_xajh_chat_words_" + info.RoomID];
					words.Add(aword);
					words.RemoveAt(0);
					this.Application["byts_xajh_chat_line_" + info.RoomID] = (int) this.Application["byts_xajh_chat_line_" + info.RoomID] + 1;
				}
				this.Application.UnLock();
			}
		}

		protected void Application_End(object sender, EventArgs e)
		{
			if (var.log_system == true)
			{
				if (!Directory.Exists(var.public_apppath + var.public_logs))
				{
					Directory.CreateDirectory(var.public_apppath + var.public_logs);
				}
				StreamWriter SW;
				if (File.Exists(var.public_apppath + var.public_logs + "System.cs"))
				{
					SW = File.AppendText(var.public_apppath + var.public_logs + "System.cs");
				}
				else
				{
					SW = File.CreateText(var.public_apppath + var.public_logs + "System.cs");
				}
				SW.WriteLine(DateTime.Now + "\t正在释放 \"" + var.public_apppath + "bin\\xajh.dll\"所占用的资源......\r\n\t\t\t笑傲江湖服务器端程序关闭!");
				SW.Close();
			}
		}
			
		#region Web Form Designer generated code
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -