|
Server : Microsoft-IIS/10.0 System : Windows NT EBS-6136 10.0 build 17763 (Windows Server 2016) i586 User : jxgj ( 0) PHP Version : 7.0.33 Disable Function : passthru,exec,system,shell_exec,proc_open,popen,pcntl_exec,socket_bind,stream_socket_server Directory : D:/tmp_aspnet/root/cae6aa2e/15328683/ |
?#pragma checksum "D:\wwwroot\anlian2025\wwwroot\App_Code\SystemTools.cs" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "F39852829AB3BE9D9DCEA088A9E45B3A0F09A29F"
#line 1 "D:\wwwroot\anlian2025\wwwroot\App_Code\SystemTools.cs"
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.IO;
using System.Diagnostics;
using System.Text;
using System.Text.RegularExpressions;
namespace WebApp.Components
{
/// <summary>
/// 系统常用工具函数类
/// </summary>
public class SystemTools
{
/// <summary>
/// 置顶飘红
/// </summary>
/// <param name="strTitle"></param>
/// <param name="strIstop"></param>
/// <returns></returns>
public string ChangeColor(string strTitle, string strIstop)
{
string strValue = null;
if (strIstop == "0")
{
strValue = strTitle;
}
else
{
strValue = "<font color='red'>" + strTitle + "</font>";
}
return strValue;
}
/// <summary>
/// 最近的新闻显示图标
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public string ChangeGif(string data)
{
DateTime t1 = DateTime.Now;
DateTime t2 = Convert.ToDateTime(data);
TimeSpan ts = t1 - t2;
int d = ts.Days;
string strGif = null;
if (d <= 7)
{
strGif = "<img src='/images/news.gif'>";
}
return strGif;
}
/// <summary>
/// 判断网站是否到期
/// </summary>
public void showTimeLimit()
{
ClientTimeLimit clienttimelimit = new ClientTimeLimit();
Common common = new Common();
clienttimelimit = common.showTimeLimit();
string strEndTime = clienttimelimit.EndTime; //获得到期功夫
DateTime t1 = DateTime.Now;
DateTime t2 = Convert.ToDateTime(strEndTime);
TimeSpan ts = t1 - t2;
int d = ts.Days;
WebSiteState websitestate = new WebSiteState();
websitestate = common.showWebSiteState();
string strState = websitestate.State; //获得网站运行状态
string strTishi = websitestate.Tishi; //网站关关原因
string strMessage = null;
if (d >= 1)
{
strMessage = "<li><b>关关原因:网站于" + t2.ToString("yyyy年MM月dd日") + "已经到期</b></li>";
strMessage = strMessage + "<li>请您尽快联系918博天堂续费!<br /><span>You as soon as possible renewals!</span></li>";
strMessage = strMessage + "<li>您的数据还都在的,我们会为您免费保留3天,3天后数据将会被删除!<br /><span>Your data is still, we kept only 3 days, 3 days after the data will be deleted!</span></li><li><strong>有任何疑难,请联系服务支持人员,感激!<br /><span>售后QQ:97028865</span></strong></li>";
System.Web.HttpContext.Current.Response.Redirect("Tishi.aspx?Message=" + System.Web.HttpUtility.UrlEncode(strMessage) + "");
}
else if (strState == "1")
{
strMessage = "<li><b>关关原因:" + strTishi + "</b></li>";
System.Web.HttpContext.Current.Response.Redirect("Tishi.aspx?Message=" + System.Web.HttpUtility.UrlEncode(strMessage) + "");
}
}
/// <summary>
/// 预防SQL注入
/// </summary>
public bool StartProcessRequest()
{
bool ReturnValue = true;
try
{
string getkeys = null;
if (System.Web.HttpContext.Current.Request.QueryString != null)
{
for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)
{
getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys].ToLower()))
{
ReturnValue = false;
break;
//System.Web.HttpContext.Current.Response.Write("您的要求带有不合法的参数,感激合作!");
//System.Web.HttpContext.Current.Response.End();
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
/// <summary>
/// 分析用户要求是否正常
/// </summary>
/// <param name="Str">传入用户提交数据</param>
/// <returns>返回是否含有SQL注入式攻击代码</returns>
public bool ProcessSqlStr(string Str)
{
string SqlStr = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare|alert";
bool ReturnValue = true;
try
{
if (Str != "")
{
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.IndexOf(ss) >= 0)
{
ReturnValue = false;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
/// <summary>
/// 判断是否是数字
/// </summary>
/// <param name="oText"></param>
/// <returns></returns>
public bool IsNumberic(string oText)//判断是否是数字
{
bool bolValue = false;
try
{
if (oText != null)
{
int var1 = System.Convert.ToInt32(oText);
bolValue = true;
}
else
{
bolValue = false;
}
}
catch
{
bolValue = false;
}
if (bolValue == false)
{
System.Web.HttpContext.Current.Response.Write("您的要求带有不合法的参数,感激合作!");
System.Web.HttpContext.Current.Response.End();
}
return bolValue;
}
/// <summary>
/// 截取字符串
/// </summary>
/// <param name="inputString"></param>
/// <param name="length"></param>
/// <returns></returns>
public string SubString(string inputString, int length)
{
if (Encoding.UTF8.GetByteCount(inputString) <= length * 2)
{
return inputString;
}
ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen = 0;
string tempString = "";
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
{
tempLen += 2;
}
else
{
tempLen += 1;
}
tempString += inputString.Substring(i, 1);
if (tempLen >= (length - 1) * 2)
break;
}
//若是截过则加上半个省略号
if (System.Text.Encoding.Default.GetBytes(inputString).Length > length)
tempString += "…";
return tempString;
}
/// <summary>
/// 将DataReader 转为 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
//public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
//{
// DataTable datatable = new DataTable();
// DataTable schemaTable = dataReader.GetSchemaTable();
// //动态增长列
// try
// {
// foreach(DataRow myRow in schemaTable.Rows)
// {
// DataColumn myDataColumn = new DataColumn();
// myDataColumn.DataType = myRow.GetType();
// myDataColumn.ColumnName = myRow[0].ToString();
// datatable.Columns.Add(myDataColumn);
// }
// //增长数据
// while(dataReader.Read())
// {
// DataRow myDataRow = datatable.NewRow();
// for(int i=0;i<schemaTable.Rows.Count;i++)
// {
// myDataRow[i] = dataReader[i].ToString();
// }
// datatable.Rows.Add(myDataRow);
// myDataRow = null;
// }
// schemaTable = null;
// dataReader.Close();
// return datatable;
// }
// catch(Exception ex)
// {
// ///抛出类型转换谬误
// throw new Exception("转换犯错犯错!",ex);
// }
//}
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
///界说DataTable
DataTable datatable = new DataTable();
try
{ ///动态增长表的数据列
for (int i = 0; i < dataReader.FieldCount; i++)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = dataReader.GetFieldType(i);
myDataColumn.ColumnName = dataReader.GetName(i);
datatable.Columns.Add(myDataColumn);
}
///增长表的数据
while (dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for (int i = 0; i < dataReader.FieldCount; i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
}
catch (Exception ex)
{
///抛出类型转换谬误
//SystemError.SystemLog(ex.Message);
throw new Exception("转换犯错犯错!", ex);
}
finally
{
///关关数据读取器
dataReader.Close();
}
return datatable;
}
/// <summary>
/// 将英文的星期几转为中文
/// </summary>
public static string ConvertDayOfWeekToZh(System.DayOfWeek dw)
{
string DayOfWeekZh = "";
switch (dw.ToString("D"))
{
case "0":
DayOfWeekZh = "日";
break;
case "1":
DayOfWeekZh = "一";
break;
case "2":
DayOfWeekZh = "二";
break;
case "3":
DayOfWeekZh = "三";
break;
case "4":
DayOfWeekZh = "四";
break;
case "5":
DayOfWeekZh = "五";
break;
case "6":
DayOfWeekZh = "六";
break;
}
return DayOfWeekZh;
}
/// <summary>
/// 提醒窗口
/// </summary>
/// <param name="url"></param>
/// <param name="message"></param>
/// <param name="type"></param>
public void MessageBox(string url, string message, int type)
{
if (type == 0)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + message + "');location.href='" + url + "';</script>");
}
else if (type == 1)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + message + "');parent.location.href='" + url + "';</script>");
}
else if (type == 2)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + message + "');window.close();</script>");
}
else if (type == 3)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + message + "');history.go(-1);</script>");
}
}
/// <summary>
/// 天生各类随机密码,蕴含纯字母,纯数字,带特殊字符等,除非字母大写密码类型,其余方式都将选取幼写密码
/// </summary>
/// <param name="pwdType">密码类型 大写为"UPPER",幼写为"LOWER",数字为"NUMBER",字母与数字为"NUMCHAR",数字字母字符都蕴含为"ALL" </param>
/// <param name="length">密码长度,最幼为6位</param>
/// <returns></returns>
public static string MakeRandomPassword(string pwdType, int length)
{
//界说密码字符的领域,幼写,大写字母,数字以及特殊字符
string lowerChars = "abcdefghijklmnopqrstuvwxyz";
string upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string numnberChars = "0123456789";
string specialCahrs = "~!@#$%^&*()_+|-=,./[]{}:;'"; //"\" 转义字符不增长 "号不增长
string tmpStr = "";
int iRandNum;
Random rnd = new Random();
length = (length < 6) ? 6 : length; //密码长度必须大于6,不然自动取6
// LOWER为幼写 UPPER为大写 NUMBER为数字 NUMCHAR为数字和字母 ALL全数蕴含 五种方式
//只有当选择UPPER才会有大写字母产生,其余方式中的字母都为幼写,预防有些时辰字母不分辨大幼写
if (pwdType == "LOWER")
{
for (int i = 0; i < length; i++)
{
iRandNum = rnd.Next(lowerChars.Length);
tmpStr += lowerChars[iRandNum];
}
}
else if (pwdType == "UPPER")
{
for (int i = 0; i < length; i++)
{
iRandNum = rnd.Next(upperChars.Length);
tmpStr += upperChars[iRandNum];
}
}
else if (pwdType == "NUMBER")
{
for (int i = 0; i < length; i++)
{
iRandNum = rnd.Next(numnberChars.Length);
tmpStr += numnberChars[iRandNum];
}
}
else if (pwdType == "NUMCHAR")
{
int numLength = rnd.Next(length);
//去掉随机数为0的情况
if (numLength == 0)
{
numLength = 1;
}
int charLength = length - numLength;
string rndStr = "";
for (int i = 0; i < numLength; i++)
{
iRandNum = rnd.Next(numnberChars.Length);
tmpStr += numnberChars[iRandNum];
}
for (int i = 0; i < charLength; i++)
{
iRandNum = rnd.Next(lowerChars.Length);
tmpStr += lowerChars[iRandNum];
}
//将获得的字符串随机打乱
for (int i = 0; i < length; i++)
{
int n = rnd.Next(tmpStr.Length);
//去除n随机为0的情况
//n = (n == 0) ? 1 : n;
rndStr += tmpStr[n];
tmpStr = tmpStr.Remove(n, 1);
}
tmpStr = rndStr;
}
else if (pwdType == "ALL")
{
int numLength = rnd.Next(length - 1);
//去掉随机数为0的情况
if (numLength == 0)
{
numLength = 1;
}
int charLength = rnd.Next(length - numLength);
if (charLength == 0)
{
charLength = 1;
}
int specCharLength = length - numLength - charLength;
string rndStr = "";
for (int i = 0; i < numLength; i++)
{
iRandNum = rnd.Next(numnberChars.Length);
tmpStr += numnberChars[iRandNum];
}
for (int i = 0; i < charLength; i++)
{
iRandNum = rnd.Next(lowerChars.Length);
tmpStr += lowerChars[iRandNum];
}
for (int i = 0; i < specCharLength; i++)
{
iRandNum = rnd.Next(specialCahrs.Length);
tmpStr += specialCahrs[iRandNum];
}
//将获得的字符串随机打乱
for (int i = 0; i < length; i++)
{
int n = rnd.Next(tmpStr.Length);
//去除n随机为0的情况
//n = (n == 0) ? 1 : n;
rndStr += tmpStr[n];
tmpStr = tmpStr.Remove(n, 1);
}
tmpStr = rndStr;
}
//默认将返回数字类型的密码
else
{
for (int i = 0; i < length; i++)
{
iRandNum = rnd.Next(numnberChars.Length);
tmpStr += numnberChars[iRandNum];
}
}
return tmpStr;
}
}
/// <summary>
/// 谬误处置函数,用于纪录谬误日志
/// </summary>
public class SystemError
{
//纪录谬误日志地位
private const string FILE_NAME = "c:\\OfficeAutolog.txt";
/// <summary>
/// 纪录日志至文本文件
/// </summary>
/// <param name="message">纪录的内容</param>
public static void SystemLog(string message)
{
// if(File.Exists(FILE_NAME))
// {
// ///若是日志文件已经存在,则直接写入日志文件
// StreamWriter sr = File.AppendText(FILE_NAME);
// sr.WriteLine ("\n");
// sr.WriteLine (DateTime.Now.ToString()+message);
// sr.Close();
// }
// else
// {
// ///创建日志文件
// StreamWriter sr = File.CreateText(FILE_NAME);
// sr.Close();
// }
}
}
//自界说Exception
public class MyException : Exception
{
//蕴含系统Excepton
public MyException(string source, string message, Exception inner)
: base(message, inner)
{
base.Source = source;
}
//不蕴含系统Exception
public MyException(string source, string message)
: base(message)
{
base.Source = source;
}
}
/// <summary>
/// 处置网页中的HTML代码,并解除危险字符
/// </summary>
public class SystemHTML
{
private static string HTMLEncode(string fString)
{
if (fString != string.Empty)
{
///代替尖括号
fString.Replace("<", "<");
fString.Replace(">", "&rt;");
///代替引号
fString.Replace(((char)34).ToString(), """);
fString.Replace(((char)39).ToString(), "'");
///代替空格
fString.Replace(((char)13).ToString(), "");
///代替换行符
fString.Replace(((char)10).ToString(), "<BR>");
}
return (fString);
}
}
}
#line default
#line hidden