@ -0,0 +1,18 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Web; | |||||
/// <summary> | |||||
/// AccessToken2 的摘要说明 | |||||
/// </summary> | |||||
public class AccessToken2 | |||||
{ | |||||
public string access_token = ""; | |||||
public string expires_in = ""; | |||||
public AccessToken2() | |||||
{ | |||||
} | |||||
} |
@ -0,0 +1,692 @@ | |||||
using System; | |||||
using System.Data; | |||||
using System.Configuration; | |||||
using System.Web; | |||||
using System.Web.Security; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using System.Web.UI.WebControls.WebParts; | |||||
using System.Data.SqlClient; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Management; //在工程(project)的引用中,右键,添加引用 | |||||
using System.DirectoryServices; //在工程(project)的引用中,右键,添加引用 | |||||
using Microsoft.JScript; //获取脚本解释引擎用 | |||||
using System.Diagnostics; //速度测试用 | |||||
using System.IO; | |||||
/// <summary> | |||||
/// Summary description for BasicPage | |||||
/// </summary> | |||||
/// | |||||
namespace Basic | |||||
{ | |||||
public class BasicPage : System.Web.UI.Page | |||||
{ | |||||
public string newString;//返回被截取的字符串 | |||||
public string connstring; | |||||
public string strSql; | |||||
public SqlConnection myconn; | |||||
public SqlCommand mycommand; | |||||
public SqlDataReader myreader; | |||||
public SqlDataAdapter myadapter; | |||||
public DataSet ds; | |||||
public DataView dv; | |||||
public DataTable tzDataTable; | |||||
// | |||||
public string strTitle = null; | |||||
public string strDescription = null; | |||||
public string strKeys = null; | |||||
//参数设置开始 | |||||
public string strServer = System.Configuration.ConfigurationManager.AppSettings["Server"].ToString(); | |||||
public string strDatabase = System.Configuration.ConfigurationManager.AppSettings["Database"].ToString(); | |||||
public string strUid = System.Configuration.ConfigurationManager.AppSettings["UID"].ToString(); | |||||
public string strPwd = System.Configuration.ConfigurationManager.AppSettings["PWD"].ToString(); | |||||
public void connection() | |||||
{ | |||||
connstring = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString(); | |||||
myconn = new SqlConnection(connstring); | |||||
} | |||||
public void dbOpen() | |||||
{ | |||||
connection(); | |||||
myconn.Open(); | |||||
} | |||||
public void dbClose() | |||||
{ | |||||
myconn.Close(); | |||||
} | |||||
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>"); | |||||
} | |||||
} | |||||
/// <summary> | |||||
///返回数据集DataSet | |||||
/// </summary> | |||||
/// <param name="tableName"></param> | |||||
/// <param name="tempStrSQL"></param> | |||||
/// <returns></returns> | |||||
public DataSet SelectDataBase(string tableName, string tempStrSQL) | |||||
{ | |||||
connection(); | |||||
ds = new DataSet(); | |||||
this.myadapter = new SqlDataAdapter(tempStrSQL, this.myconn); | |||||
this.myadapter.Fill(ds, tableName); | |||||
return ds; | |||||
} | |||||
/// <summary> | |||||
///返回数据集DataTable | |||||
/// </summary> | |||||
/// <param name="tableName"></param> | |||||
/// <param name="tempStrSQL"></param> | |||||
/// <returns></returns> | |||||
public DataTable SelectDataTable(string tempStrSQL) | |||||
{ | |||||
connection(); | |||||
myconn.Open(); | |||||
SqlCommand cmd = new SqlCommand(tempStrSQL, this.myconn); | |||||
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); | |||||
DataTable dt = new DataTable(); | |||||
dt.Load(reader); | |||||
reader.Dispose(); | |||||
return dt; | |||||
} | |||||
/// <summary> | |||||
/// 返回单条数据 | |||||
/// </summary> | |||||
/// <param name="tempStrSql"></param> | |||||
/// <returns></returns> | |||||
public SqlDataReader getRead(string tempStrSql) | |||||
{ | |||||
connection(); | |||||
SqlCommand mycommand = new SqlCommand(tempStrSql, myconn); | |||||
myconn.Open(); | |||||
SqlDataReader myreader = mycommand.ExecuteReader(CommandBehavior.CloseConnection); | |||||
return myreader; | |||||
} | |||||
/// <summary> | |||||
/// 执行更新操作 | |||||
/// </summary> | |||||
/// <param name="tempStrSql"></param> | |||||
/// <returns></returns> | |||||
public bool doExecute(string tempStrSql) | |||||
{ | |||||
connection(); | |||||
SqlCommand mycommand = new SqlCommand(tempStrSql, myconn); | |||||
myconn.Open(); | |||||
try | |||||
{ | |||||
mycommand.ExecuteNonQuery(); | |||||
return true; | |||||
} | |||||
finally | |||||
{ | |||||
mycommand.Dispose(); | |||||
myconn.Close(); | |||||
myconn.Dispose(); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 截取字符串 | |||||
/// </summary> | |||||
/// <param name="str"></param> | |||||
/// <param name="length"></param> | |||||
/// <returns></returns> | |||||
public string CutString(string str, int length) | |||||
{ | |||||
if (str != "") | |||||
{ | |||||
if (str.Length > length) | |||||
{ | |||||
newString = str.Substring(0, length) + "..."; | |||||
} | |||||
else | |||||
{ | |||||
newString = str; | |||||
} | |||||
} | |||||
return newString; | |||||
} | |||||
/// <summary> | |||||
/// 清空浏览器客户端的缓存 | |||||
/// </summary> | |||||
public bool ClearClientPageCache() | |||||
{ | |||||
HttpContext.Current.Response.Buffer = true; | |||||
HttpContext.Current.Response.Expires = 0; | |||||
HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); | |||||
HttpContext.Current.Response.AddHeader("pragma", "no-cache"); | |||||
HttpContext.Current.Response.AddHeader("cache-control", "private"); | |||||
HttpContext.Current.Response.CacheControl = "no-cache"; | |||||
return true; | |||||
} | |||||
/// <summary> | |||||
/// 检测Jmail4.3邮箱组件或FSO文本读写 | |||||
/// </summary> | |||||
/// <param name="_obj"></param> | |||||
/// <returns></returns> | |||||
public bool IsObjInstalled(string _obj) | |||||
{ | |||||
bool IsFSOInstalled = false; | |||||
try | |||||
{ | |||||
Server.CreateObject(_obj); | |||||
IsFSOInstalled = true; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
IsFSOInstalled = false; | |||||
} | |||||
return IsFSOInstalled; | |||||
} | |||||
/// <summary> | |||||
/// 获取脚本解释引擎 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string JiaoBenYinqing() | |||||
{ | |||||
return GlobalObject.ScriptEngine() + "/" + GlobalObject.ScriptEngineMajorVersion() + "." + GlobalObject.ScriptEngineMinorVersion() + "." + GlobalObject.ScriptEngineBuildVersion(); | |||||
} | |||||
/// <summary> | |||||
/// 获取服务器ip | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string ServerIp() | |||||
{ | |||||
string stringMAC = ""; | |||||
string stringIP = ""; | |||||
ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration"); | |||||
ManagementObjectCollection MOC = MC.GetInstances(); | |||||
foreach (ManagementObject MO in MOC) | |||||
{ | |||||
if ((bool)MO["IPEnabled"] == true) | |||||
{ | |||||
stringMAC += MO["MACAddress"].ToString(); | |||||
//TextMAC.Text = stringMAC.ToString(); | |||||
string[] IPAddresses = (string[])MO["IPAddress"]; | |||||
if (IPAddresses.Length > 0) stringIP = IPAddresses[0]; | |||||
} | |||||
} | |||||
return stringIP; | |||||
} | |||||
/// <summary> | |||||
/// 获取操作系统 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string ServerOS() | |||||
{ | |||||
return System.Environment.OSVersion.ToString(); | |||||
} | |||||
/// <summary> | |||||
/// 整数运算速度测试 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string IntTest() | |||||
{ | |||||
string Value; | |||||
Stopwatch timer = new Stopwatch(); | |||||
long total = 0; | |||||
timer.Start(); | |||||
for (int i = 1; i <= 500000; i++) | |||||
{ | |||||
total += i; | |||||
} | |||||
timer.Stop(); | |||||
decimal micro = timer.Elapsed.Ticks / 10m; | |||||
Value = "整数运算测试,正在进行50万次加法运算......已完成!<font color=red>" + micro.ToString() + "微妙" + "</font>"; | |||||
return Value; | |||||
} | |||||
/// <summary> | |||||
/// 实数运算速度测试 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string FloatTest() | |||||
{ | |||||
string Value; | |||||
Stopwatch timer = new Stopwatch(); | |||||
long total = 0; | |||||
timer.Start(); | |||||
for (int i = 1; i <= 200000; i++) | |||||
{ | |||||
total *= total; | |||||
} | |||||
timer.Stop(); | |||||
decimal micro = timer.Elapsed.Ticks / 10m; | |||||
Value = "浮点数运算测试,正在进行20万次乘法运算......已完成!<font color=red>" + micro.ToString() + "微妙" + "</font>"; | |||||
return Value; | |||||
} | |||||
/// <summary> | |||||
/// 备份数据库 | |||||
/// </summary> | |||||
/// <param name="strDbName"></param> | |||||
/// <param name="strFileName"></param> | |||||
/// <param name="strRname"></param> | |||||
/// <returns></returns> | |||||
public string DbBackup(string strDbName, string strFileName, string strRname) | |||||
{ | |||||
try | |||||
{ | |||||
SQLDMO.Backup oBackup = new SQLDMO.BackupClass(); | |||||
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); | |||||
oSQLServer.LoginSecure = false; | |||||
oSQLServer.Connect(strServer, strUid, strPwd); | |||||
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; | |||||
oBackup.Database = strDbName; | |||||
string Path = strFileName + strRname; | |||||
oBackup.Files = Path; | |||||
oBackup.BackupSetName = strRname; | |||||
oBackup.BackupSetDescription = "备份数据库"; | |||||
oBackup.Initialize = true; | |||||
oBackup.SQLBackup(oSQLServer); | |||||
oSQLServer.DisConnect(); | |||||
return "ok"; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
return ex.Message; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 还原数据库 | |||||
/// </summary> | |||||
/// <param name="strDbName"></param> | |||||
/// <param name="strFileName"></param> | |||||
/// <param name="strRname"></param> | |||||
/// <returns></returns> | |||||
public bool DbRestore(string strDbName, string strFileName, string strRname) | |||||
{ | |||||
strDbName = strDatabase; | |||||
strFileName = ""; | |||||
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass(); | |||||
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); | |||||
try | |||||
{ | |||||
oSQLServer.LoginSecure = false; | |||||
oSQLServer.Connect(strServer, strUid, strPwd); | |||||
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; | |||||
oRestore.Database = strDbName; | |||||
oRestore.Files = strFileName + strRname; | |||||
oRestore.FileNumber = 1; | |||||
oRestore.ReplaceDatabase = true; | |||||
oRestore.SQLRestore(oSQLServer); | |||||
return true; | |||||
} | |||||
catch | |||||
{ | |||||
return false; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取系统使用者名称 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string readConame() | |||||
{ | |||||
string strConame; | |||||
SqlDataReader Myreader; | |||||
Myreader = getRead("select webname from tbset where id=1"); | |||||
if (Myreader.Read()) | |||||
{ | |||||
strConame = Myreader["webname"].ToString(); | |||||
} | |||||
else | |||||
{ | |||||
strConame = "<font color=red>暂无数据(请先进行系统基本设置)</font>"; | |||||
} | |||||
Myreader.Close(); | |||||
return strConame; | |||||
} | |||||
/// <summary> | |||||
/// 统计服务器空间占用情况 | |||||
/// </summary> | |||||
/// <param name="dirPath"></param> | |||||
/// <returns></returns> | |||||
public long GetDirectoryLength(string dirPath) | |||||
{ | |||||
//判断给定的路径是否存在,如果不存在则退出 | |||||
if (!Directory.Exists(dirPath)) | |||||
return 0; | |||||
long len = 0; | |||||
//定义一个DirectoryInfo对象 | |||||
DirectoryInfo di = new DirectoryInfo(dirPath); | |||||
//通过GetFiles方法,获取di目录中的所有文件的大小 | |||||
foreach (FileInfo fi in di.GetFiles()) | |||||
{ | |||||
len += fi.Length; | |||||
} | |||||
//获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归 | |||||
DirectoryInfo[] dis = di.GetDirectories(); | |||||
if (dis.Length > 0) | |||||
{ | |||||
for (int i = 0; i < dis.Length; i++) | |||||
{ | |||||
len += GetDirectoryLength(dis[i].FullName); | |||||
} | |||||
} | |||||
return len; | |||||
} | |||||
/// <summary> | |||||
/// 添加要锁定的IP | |||||
/// </summary> | |||||
/// <param name="strAddIp"></param> | |||||
/// <returns></returns> | |||||
public int lockip(string strAddIp) | |||||
{ | |||||
int returnId = 0; | |||||
int intId = 1; | |||||
bool bsign = false; | |||||
string strIpGroup; | |||||
string strIp = strAddIp; | |||||
SqlDataReader myreader = getRead("select ip from TbIp where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
string[] strIPzu = myreader["ip"].ToString().Split('|'); | |||||
for (int i = 0; i < strIPzu.Length; i++) | |||||
{ | |||||
if (strIp == strIPzu[i]) | |||||
{ | |||||
bsign = true; | |||||
} | |||||
} | |||||
strIpGroup = myreader["ip"].ToString(); | |||||
myreader.Close(); | |||||
if (bsign == false) | |||||
{ | |||||
if (strIpGroup == "") | |||||
{ | |||||
strIpGroup = strIp; | |||||
} | |||||
else | |||||
{ | |||||
strIpGroup = strIpGroup + "|" + strIp; | |||||
} | |||||
if (doExecute("update tbIp set ip='" + strIpGroup + "' where id=1")) | |||||
{ | |||||
//Response.Redirect("Success.aspx?message=IP锁定成功!&url=IpManage.aspx"); | |||||
returnId = 1; | |||||
} | |||||
} | |||||
else if (bsign == true) | |||||
{ | |||||
//Response.Redirect("Error.aspx?message=锁定失败,该IP已被锁定!&url=IpManage.aspx"); | |||||
returnId = 2; | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
myreader.Close(); | |||||
if (doExecute("insert into tbIp(id,ip)values(" + intId + ",'" + strIp + "')")) | |||||
{ | |||||
//Response.Redirect("Success.aspx?message=IP锁定成功!&url=IpManage.aspx"); | |||||
returnId = 3; | |||||
} | |||||
} | |||||
return returnId; | |||||
} | |||||
/// <summary> | |||||
/// 显示被锁定IP | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string showLockIp() | |||||
{ | |||||
string strIp = ""; | |||||
SqlDataReader myreader = getRead("select ip from tbIp where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
strIp = myreader["ip"].ToString(); | |||||
} | |||||
myreader.Close(); | |||||
return strIp.Trim(); | |||||
} | |||||
/// <summary> | |||||
/// 更新锁定的IP列表 | |||||
/// </summary> | |||||
/// <param name="strIps"></param> | |||||
/// <returns></returns> | |||||
public bool updateIp(string strIps) | |||||
{ | |||||
bool sign = false; | |||||
SqlDataReader myreader = getRead("select * from tbIp where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
if (doExecute("update tbIp set ip='" + strIps + "' where id=1")) | |||||
{ | |||||
sign = true; | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
int id = 1; | |||||
if (doExecute("insert into tbIp(id,ip)values(" + id + ",'" + strIps + "')")) | |||||
{ | |||||
sign = true; | |||||
} | |||||
} | |||||
myreader.Close(); | |||||
return sign; | |||||
} | |||||
/// <summary> | |||||
/// 判断是否关闭网站 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public void ShowWebState() | |||||
{ | |||||
string state = "1"; | |||||
SqlDataReader myreader = getRead("select state from TBset where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
state = myreader["state"].ToString(); | |||||
if (state == "0") | |||||
{ | |||||
System.Web.HttpContext.Current.Response.Write("<script>parent.location.href='Close.htm'</script>"); | |||||
} | |||||
} | |||||
myreader.Close(); | |||||
} | |||||
/// <summary> | |||||
/// 读取Title,Description,Keys | |||||
/// </summary> | |||||
public void showWebTitle() | |||||
{ | |||||
int intId = 1; | |||||
SqlDataReader Myreader = getRead("select * from TBset where id=" + intId + ""); | |||||
if (Myreader.Read()) | |||||
{ | |||||
strTitle = Myreader["webname"].ToString(); | |||||
strDescription = Myreader["webdescription"].ToString(); | |||||
strKeys = Myreader["webkeys"].ToString(); | |||||
} | |||||
Myreader.Close(); | |||||
StartProcessRequest();//分析用户请求是否正常 | |||||
ShowWebState();//判断网站是否关闭 | |||||
} | |||||
/// <summary> | |||||
/// 分析用户请求是否正常 | |||||
/// </summary> | |||||
/// | |||||
public static void StartProcessRequest() | |||||
{ | |||||
try | |||||
{ | |||||
string getkeys = ""; | |||||
//string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString(); | |||||
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], 0)) | |||||
{ | |||||
//System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true"); | |||||
System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>"); | |||||
System.Web.HttpContext.Current.Response.End(); | |||||
} | |||||
} | |||||
} | |||||
if (System.Web.HttpContext.Current.Request.Form != null) | |||||
{ | |||||
for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++) | |||||
{ | |||||
getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i]; | |||||
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys], 1)) | |||||
{ | |||||
//System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true"); | |||||
System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>"); | |||||
System.Web.HttpContext.Current.Response.End(); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
catch | |||||
{ | |||||
// 错误处理: 处理用户提交信息! | |||||
} | |||||
} | |||||
/**/ | |||||
/// <summary> | |||||
/// 分析用户请求是否正常 | |||||
/// </summary> | |||||
/// <param name="Str">传入用户提交数据</param> | |||||
/// <returns>返回是否含有SQL注入式攻击代码</returns> | |||||
private static bool ProcessSqlStr(string Str, int type) | |||||
{ | |||||
string SqlStr; | |||||
if (type == 1) | |||||
SqlStr = "exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare"; | |||||
else | |||||
SqlStr = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare|>|<"; | |||||
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>bool</returns> | |||||
public bool IsNumberic(string oText)//判断是否是数字 | |||||
{ | |||||
try | |||||
{ | |||||
int var1 = System.Convert.ToInt32(oText); | |||||
if (var1 < 0) | |||||
{ | |||||
return false; | |||||
} | |||||
return true; | |||||
} | |||||
catch | |||||
{ | |||||
return false; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 截取字符串 | |||||
/// </summary> | |||||
/// <param name="inputString"></param> | |||||
/// <param name="length"></param> | |||||
/// <returns>string</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> | |||||
/// 显示登录状态 | |||||
/// </summary> | |||||
public void ShowLoginState() | |||||
{ | |||||
if (Session["j95fn3839vfn93h9n29n"] == null) | |||||
{ | |||||
System.Web.HttpContext.Current.Response.Write("<script>parent.location.href='Default.aspx'</script>"); | |||||
} | |||||
} | |||||
#region JS提示============================================ | |||||
/// <summary> | |||||
/// 添加编辑删除提示 | |||||
/// </summary> | |||||
/// <param name="msgtitle">提示文字</param> | |||||
/// <param name="url">返回地址</param> | |||||
/// <param name="msgcss">CSS样式</param> | |||||
public void JscriptMsg(string msgtitle, string url, string msgcss) | |||||
{ | |||||
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\")"; | |||||
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true); | |||||
} | |||||
/// <summary> | |||||
/// 带回传函数的添加编辑删除提示 | |||||
/// </summary> | |||||
/// <param name="msgtitle">提示文字</param> | |||||
/// <param name="url">返回地址</param> | |||||
/// <param name="msgcss">CSS样式</param> | |||||
/// <param name="callback">JS回调函数</param> | |||||
public void JscriptMsg(string msgtitle, string url, string msgcss, string callback) | |||||
{ | |||||
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\", " + callback + ")"; | |||||
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true); | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@ -0,0 +1,66 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.Caching; | |||||
/// <summary> | |||||
///CacheHelper 的摘要说明 | |||||
/// </summary> | |||||
/// | |||||
namespace Basic | |||||
{ | |||||
public class CacheHelper | |||||
{ | |||||
/// <summary> | |||||
/// 创建缓存项的文件依赖 | |||||
/// </summary> | |||||
/// <param name="key">缓存Key</param> | |||||
/// <param name="obj">object对象</param> | |||||
/// <param name="fileName">文件绝对路径</param> | |||||
public static void Insert(string key, object obj, string fileName) | |||||
{ | |||||
//创建缓存依赖项 | |||||
CacheDependency dep = new CacheDependency(fileName); | |||||
//创建缓存 | |||||
HttpContext.Current.Cache.Insert(key, obj, dep); | |||||
} | |||||
/// <summary> | |||||
/// 创建缓存项过期 | |||||
/// </summary> | |||||
/// <param name="key">缓存Key</param> | |||||
/// <param name="obj">object对象</param> | |||||
/// <param name="expires">过期时间(分钟)</param> | |||||
public static void Insert(string key, object obj, int expires) | |||||
{ | |||||
HttpContext.Current.Cache.Insert(key, obj, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, expires, 0)); | |||||
} | |||||
/// <summary> | |||||
/// 获取缓存对象 | |||||
/// </summary> | |||||
/// <param name="key">缓存Key</param> | |||||
/// <returns>object对象</returns> | |||||
public static object Get(string key) | |||||
{ | |||||
if (string.IsNullOrEmpty(key)) | |||||
{ | |||||
return null; | |||||
} | |||||
return HttpContext.Current.Cache.Get(key); | |||||
} | |||||
/// <summary> | |||||
/// 获取缓存对象 | |||||
/// </summary> | |||||
/// <typeparam name="T">T对象</typeparam> | |||||
/// <param name="key">缓存Key</param> | |||||
/// <returns></returns> | |||||
public static T Get<T>(string key) | |||||
{ | |||||
object obj = Get(key); | |||||
return obj == null ? default(T) : (T)obj; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,73 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using System.Data.SqlClient; | |||||
namespace Basic | |||||
{ | |||||
public enum EffentNextType | |||||
{ | |||||
/// <summary> | |||||
/// 对其他语句无任何影响 | |||||
/// </summary> | |||||
None, | |||||
/// <summary> | |||||
/// 当前语句必须为"select count(1) from .."格式,如果存在则继续执行,不存在回滚事务 | |||||
/// </summary> | |||||
WhenHaveContine, | |||||
/// <summary> | |||||
/// 当前语句必须为"select count(1) from .."格式,如果不存在则继续执行,存在回滚事务 | |||||
/// </summary> | |||||
WhenNoHaveContine, | |||||
/// <summary> | |||||
/// 当前语句影响到的行数必须大于0,否则回滚事务 | |||||
/// </summary> | |||||
ExcuteEffectRows, | |||||
/// <summary> | |||||
/// 引发事件-当前语句必须为"select count(1) from .."格式,如果不存在则继续执行,存在回滚事务 | |||||
/// </summary> | |||||
SolicitationEvent | |||||
} | |||||
public class CommandInfo | |||||
{ | |||||
public object ShareObject = null; | |||||
public object OriginalData = null; | |||||
event EventHandler _solicitationEvent; | |||||
public event EventHandler SolicitationEvent | |||||
{ | |||||
add | |||||
{ | |||||
_solicitationEvent += value; | |||||
} | |||||
remove | |||||
{ | |||||
_solicitationEvent -= value; | |||||
} | |||||
} | |||||
public void OnSolicitationEvent() | |||||
{ | |||||
if (_solicitationEvent != null) | |||||
{ | |||||
_solicitationEvent(this, new EventArgs()); | |||||
} | |||||
} | |||||
public string CommandText; | |||||
public System.Data.Common.DbParameter[] Parameters; | |||||
public EffentNextType EffentNextType = EffentNextType.None; | |||||
public CommandInfo() | |||||
{ | |||||
} | |||||
public CommandInfo(string sqlText, SqlParameter[] para) | |||||
{ | |||||
this.CommandText = sqlText; | |||||
this.Parameters = para; | |||||
} | |||||
public CommandInfo(string sqlText, SqlParameter[] para, EffentNextType type) | |||||
{ | |||||
this.CommandText = sqlText; | |||||
this.Parameters = para; | |||||
this.EffentNextType = type; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,171 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Web; | |||||
using System.Data; | |||||
using System.Data.SqlClient; | |||||
using System.Configuration; | |||||
using System.Text; | |||||
/// <summary> | |||||
///DBacess 的摘要说明 | |||||
/// </summary> | |||||
namespace basic | |||||
{ | |||||
public class DBacess | |||||
{ | |||||
/// <summary> | |||||
/// 创建活动SqlConnection | |||||
/// </summary> | |||||
/// <returns>SqlConnection</returns> | |||||
/// | |||||
public static SqlConnection con; | |||||
private static SqlConnection connection() | |||||
{ | |||||
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString()); | |||||
con = conn; | |||||
return conn; | |||||
} | |||||
/// <summary> | |||||
/// 打开连接数据库 | |||||
/// </summary> | |||||
/// <param name="conn">SqlConnection对象</param> | |||||
private void OpenConnection(SqlConnection conn) | |||||
{ | |||||
if (conn != null && conn.State == ConnectionState.Closed) | |||||
conn.Open(); | |||||
} | |||||
/// <summary> | |||||
/// 关闭数据库 | |||||
/// </summary> | |||||
/// <param name="conn">SqlConnection对象</param> | |||||
private void CloseConnection(SqlConnection conn) | |||||
{ | |||||
if (conn != null && conn.State == ConnectionState.Open) | |||||
conn.Close(); | |||||
} | |||||
/// <summary> | |||||
/// 更新数据库 | |||||
/// </summary> | |||||
/// <param name="sql"></param> | |||||
/// <param name="parameters"></param> | |||||
/// <param name="type"></param> | |||||
/// <returns></returns> | |||||
public bool Update(string sql, SqlParameter[] parameters, CommandType type) | |||||
{ | |||||
SqlConnection conn = connection(); | |||||
bool result = false; | |||||
try | |||||
{ | |||||
using (conn) | |||||
{ | |||||
SqlCommand cmd = new SqlCommand(sql, conn); | |||||
if (parameters != null) | |||||
{ | |||||
foreach (SqlParameter parameter in parameters) | |||||
{ | |||||
if (parameters != null && parameter.ParameterName != "") | |||||
{ | |||||
cmd.Parameters.Add(parameter); | |||||
} | |||||
} | |||||
} | |||||
cmd.CommandType = type; | |||||
cmd.Connection.Open(); | |||||
int flag = cmd.ExecuteNonQuery(); | |||||
if (flag > 0) | |||||
result = true; | |||||
} | |||||
} | |||||
finally | |||||
{ | |||||
CloseConnection(conn); | |||||
} | |||||
return result; | |||||
} | |||||
/// <summary> | |||||
/// 根据条件查询数据 | |||||
/// </summary> | |||||
/// <param name="sql"></param> | |||||
/// <param name="parameters"></param> | |||||
/// <returns>DataTable</returns> | |||||
public DataTable SelectReturnDataTable(string sql, SqlParameter[] parameters) | |||||
{ | |||||
SqlConnection conn = connection(); | |||||
DataTable dt = new DataTable(); | |||||
try | |||||
{ | |||||
using (conn) | |||||
{ | |||||
SqlCommand cmd = new SqlCommand(sql, conn); | |||||
if (parameters != null) | |||||
{ | |||||
foreach (SqlParameter parameter in parameters) | |||||
{ | |||||
if (parameter != null && parameter.ParameterName != "") | |||||
{ | |||||
cmd.Parameters.Add(parameter); | |||||
} | |||||
} | |||||
} | |||||
conn.Open(); | |||||
SqlDataAdapter sda = new SqlDataAdapter(cmd); | |||||
sda.Fill(dt); | |||||
} | |||||
} | |||||
//catch (Exception e) | |||||
//{ | |||||
//} | |||||
finally | |||||
{ | |||||
CloseConnection(conn); | |||||
} | |||||
return dt; | |||||
} | |||||
/// <summary> | |||||
/// 根据条件查询数据 | |||||
/// </summary> | |||||
/// <param name="sql"></param> | |||||
/// <param name="parameters"></param> | |||||
/// <returns>DataSet</returns> | |||||
public DataSet SelectReturnDataSet(string sql, SqlParameter[] parameters) | |||||
{ | |||||
SqlConnection conn = connection(); | |||||
DataSet ds = new DataSet(); | |||||
try | |||||
{ | |||||
using (conn) | |||||
{ | |||||
SqlCommand cmd = new SqlCommand(sql, conn); | |||||
if (parameters != null) | |||||
{ | |||||
foreach (SqlParameter parameter in parameters) | |||||
{ | |||||
if (parameter != null && parameter.ParameterName != "") | |||||
{ | |||||
cmd.Parameters.Add(parameter); | |||||
} | |||||
} | |||||
} | |||||
conn.Open(); | |||||
SqlDataAdapter sda = new SqlDataAdapter(cmd); | |||||
sda.Fill(ds); | |||||
} | |||||
} | |||||
//catch (Exception e) | |||||
//{ | |||||
//} | |||||
finally | |||||
{ | |||||
CloseConnection(conn); | |||||
} | |||||
return ds; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,89 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Security.Cryptography; | |||||
using System.Text; | |||||
/// <summary> | |||||
///DESEncrypt 的摘要说明 | |||||
/// </summary> | |||||
namespace Basic.Tools | |||||
{ | |||||
public class DESEncrypt | |||||
{ | |||||
/// <summary> | |||||
/// 加密 | |||||
/// </summary> | |||||
/// <param name="Text"></param> | |||||
/// <returns></returns> | |||||
public static string Encrypt(string Text) | |||||
{ | |||||
return Encrypt(Text, "str_key"); | |||||
} | |||||
/// <summary> | |||||
/// 加密数据 | |||||
/// </summary> | |||||
/// <param name="Text"></param> | |||||
/// <param name="sKey"></param> | |||||
/// <returns></returns> | |||||
public static string Encrypt(string Text, string sKey) | |||||
{ | |||||
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); | |||||
byte[] inputByteArray; | |||||
inputByteArray = Encoding.Default.GetBytes(Text); | |||||
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); | |||||
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); | |||||
System.IO.MemoryStream ms = new System.IO.MemoryStream(); | |||||
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); | |||||
cs.Write(inputByteArray, 0, inputByteArray.Length); | |||||
cs.FlushFinalBlock(); | |||||
StringBuilder ret = new StringBuilder(); | |||||
foreach (byte b in ms.ToArray()) | |||||
{ | |||||
ret.AppendFormat("{0:X2}", b); | |||||
} | |||||
return ret.ToString(); | |||||
} | |||||
/// <summary> | |||||
/// 解密 | |||||
/// </summary> | |||||
/// <param name="Text"></param> | |||||
/// <returns></returns> | |||||
public static string Decrypt(string Text) | |||||
{ | |||||
return Decrypt(Text, "str_key"); | |||||
} | |||||
/// <summary> | |||||
/// 解密数据 | |||||
/// </summary> | |||||
/// <param name="Text"></param> | |||||
/// <param name="sKey"></param> | |||||
/// <returns></returns> | |||||
public static string Decrypt(string Text, string sKey) | |||||
{ | |||||
DESCryptoServiceProvider des = new DESCryptoServiceProvider(); | |||||
int len; | |||||
len = Text.Length / 2; | |||||
byte[] inputByteArray = new byte[len]; | |||||
int x, i; | |||||
for (x = 0; x < len; x++) | |||||
{ | |||||
i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); | |||||
inputByteArray[x] = (byte)i; | |||||
} | |||||
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); | |||||
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); | |||||
System.IO.MemoryStream ms = new System.IO.MemoryStream(); | |||||
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); | |||||
cs.Write(inputByteArray, 0, inputByteArray.Length); | |||||
cs.FlushFinalBlock(); | |||||
return Encoding.Default.GetString(ms.ToArray()); | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,48 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
/// <summary> | |||||
///EnumsClass 的摘要说明 | |||||
/// </summary> | |||||
/// | |||||
namespace Basic | |||||
{ | |||||
public class EnumsClass | |||||
{ | |||||
/// <summary> | |||||
/// 统一管理操作枚举 | |||||
/// </summary> | |||||
public enum ActionEnum | |||||
{ | |||||
/// <summary> | |||||
/// 查看 | |||||
/// </summary> | |||||
View, | |||||
/// <summary> | |||||
/// 添加 | |||||
/// </summary> | |||||
Add, | |||||
/// <summary> | |||||
/// 修改 | |||||
/// </summary> | |||||
Edit, | |||||
/// <summary> | |||||
/// 删除 | |||||
/// </summary> | |||||
Delete, | |||||
/// <summary> | |||||
/// 导出 | |||||
/// </summary> | |||||
Export, | |||||
/// <summary> | |||||
/// 打印 | |||||
/// </summary> | |||||
Print, | |||||
/// <summary> | |||||
/// 查询 | |||||
/// </summary> | |||||
Inquiry | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,149 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Web; | |||||
using System.Text; | |||||
using System.Text.RegularExpressions; | |||||
namespace Basic.Engine.Get | |||||
{ | |||||
/// <summary> | |||||
/// 获取分页代码 | |||||
/// </summary> | |||||
public static class PagiNation | |||||
{ | |||||
/// <summary> | |||||
/// 获取分页代码(总页数,当前页) | |||||
/// </summary> | |||||
/// <param name="TotelPage"></param> | |||||
/// <param name="NowPage"></param> | |||||
public static string GetPageHtml(int TotelPage, int NowPage) | |||||
{ | |||||
string NowUrl = HttpContext.Current.Request.RawUrl; | |||||
Regex Rzz = new Regex(@"\?page=\d+|\&page=\d+", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace); | |||||
NowUrl = Rzz.Replace(NowUrl, "", 1); | |||||
if (NowUrl.ToLower().Contains("?")) | |||||
{ | |||||
NowUrl = NowUrl + "&page="; | |||||
} | |||||
else | |||||
{ | |||||
NowUrl = NowUrl + "?page="; | |||||
} | |||||
int prevPage = NowPage - 1; | |||||
int nextPage = NowPage + 1; | |||||
StringBuilder strFenye = new StringBuilder(); | |||||
if (TotelPage > 1) | |||||
{ | |||||
strFenye.Append("<div id=\"PageContent\" class=\"flickr\" style=\"text-align: center;\">"); | |||||
strFenye.Append("<div class=\"pages\">"); | |||||
if (NowPage > 1)//第一页的时候 不显示上一页 | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + prevPage + "\">«上一页</a></span>"); | |||||
} | |||||
if (NowPage != 1)//当前页不是第一页的时候始终显示 第一页 | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + "1\">1</a></span>"); | |||||
} | |||||
if (NowPage >= 5)//当前页大于5时候 显示 ... | |||||
{ | |||||
strFenye.Append("<span>...</span>"); | |||||
for (int i = 2; i <= NowPage - 3; i++) | |||||
{ | |||||
strFenye.Append("<span class=\"pageyc\"><a href=\"" + NowUrl + i + "\">" + i + "</a></span>"); | |||||
} | |||||
} | |||||
if (TotelPage < 6) | |||||
{ | |||||
#region 总页数小于5时 | |||||
// | |||||
for (int i = 0; i < (TotelPage + 1); i++) | |||||
{ | |||||
if (i > 0) | |||||
{ | |||||
if (i == NowPage) | |||||
{ | |||||
strFenye.Append("<span class=\"number\">" + i + "</span>"); | |||||
} | |||||
else | |||||
{ | |||||
if (i != 1) | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + i + "\">" + i + "</a></span>"); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
else | |||||
{ | |||||
#region 总页数大于5时 | |||||
// | |||||
int endPage = 0; | |||||
if (TotelPage > NowPage + 2) | |||||
{ | |||||
endPage = NowPage + 2; | |||||
} | |||||
else | |||||
{ | |||||
endPage = NowPage; | |||||
} | |||||
// | |||||
for (int i = NowPage - 2; i <= endPage; i++) | |||||
{ | |||||
if (i > 0) | |||||
{ | |||||
if (i == NowPage) | |||||
{ | |||||
strFenye.Append("<span class=\"number\">" + i + "</span>"); | |||||
} | |||||
else | |||||
{ | |||||
if (i != 1 && i != TotelPage) | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + i + "\">" + i + "</a></span>"); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if (NowPage == TotelPage - 2) | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + (NowPage + 1) + "\">" + (NowPage + 1) + "</a></span>"); | |||||
} | |||||
if (NowPage + 3 < TotelPage) | |||||
{ | |||||
strFenye.Append("<span>...</span>"); | |||||
for (int i = NowPage + 3; i <= TotelPage - 1; i++) | |||||
{ | |||||
strFenye.Append("<span class=\"pageyc\"><a href=\"" + NowUrl + i + "\">" + i + "</a></span>"); | |||||
} | |||||
} | |||||
if (NowPage != TotelPage) | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + TotelPage + "\">" + TotelPage + "</a></span>"); | |||||
} | |||||
#endregion | |||||
} | |||||
if (NowPage < TotelPage)//最后一页 不显示下一页 | |||||
{ | |||||
strFenye.Append("<span><a href=\"" + NowUrl + nextPage + "\">下一页»</a></span>"); | |||||
} | |||||
strFenye.Append("</div>"); | |||||
strFenye.Append("</div>"); | |||||
} | |||||
return strFenye.ToString(); | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,77 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.UI.WebControls; | |||||
/// <summary> | |||||
/// HuiyuanPage 会员中心通用判断是否登录 | |||||
/// </summary> | |||||
/// | |||||
namespace Basic | |||||
{ | |||||
public class HuiyuanPage : System.Web.UI.Page | |||||
{ | |||||
public HuiyuanPage() | |||||
{ | |||||
this.Load += new EventHandler(HuiyuanPage_Load); | |||||
} | |||||
private void HuiyuanPage_Load(object sender, EventArgs e) | |||||
{ | |||||
//判断管理员是否登录 | |||||
if (!IsUserLogin()) | |||||
{ | |||||
string _weburl = Basic.Tools.WebInfo.weburl(); | |||||
Response.Write("<script>parent.location.href='" + _weburl + "/member/login.htm'</script>"); | |||||
Response.End(); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 判断会员是否登录 | |||||
/// </summary> | |||||
public bool IsUserLogin() | |||||
{ | |||||
//如果Session为Null | |||||
if (System.Web.HttpContext.Current.Session[Keys.SESSION_USER_INFO] != null) | |||||
{ | |||||
return true; | |||||
} | |||||
else | |||||
{ | |||||
//检查Cookies | |||||
string username = Basic.Tools.Utils.GetCookie("UserName", "str_key"); | |||||
string userpwd = Basic.Tools.Utils.GetCookie("UserPwd", "str_key"); | |||||
if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(userpwd)) | |||||
{ | |||||
DAL.user dal = new DAL.user(); | |||||
Model.user model = dal.GetModel(username, userpwd); | |||||
if (model != null) | |||||
{ | |||||
System.Web.HttpContext.Current.Session[Keys.SESSION_USER_INFO] = model; | |||||
return true; | |||||
} | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
/// <summary> | |||||
/// 取得管理员信息 | |||||
/// </summary> | |||||
public Model.user GetUserInfo() | |||||
{ | |||||
if (IsUserLogin()) | |||||
{ | |||||
Model.user model = Session[Keys.SESSION_USER_INFO] as Model.user; | |||||
if (model != null) | |||||
{ | |||||
return model; | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,50 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Text; | |||||
/// <summary> | |||||
///Keys 的摘要说明 | |||||
/// </summary> | |||||
namespace Basic | |||||
{ | |||||
public class Keys | |||||
{ | |||||
//系统版本 | |||||
/// <summary> | |||||
/// 版本号全称 | |||||
/// </summary> | |||||
public const string ASSEMBLY_VERSION = "2.0.0"; | |||||
//File====================================================== | |||||
/// <summary> | |||||
/// 站点配置文件名 | |||||
/// </summary> | |||||
public const string FILE_SITE_XML_CONFING = "Configpath"; | |||||
/// <summary> | |||||
/// 站点配置 | |||||
/// </summary> | |||||
public const string CACHE_SITE_CONFIG = "key_cache_site_config"; | |||||
/// <summary> | |||||
/// 验证码 | |||||
/// </summary> | |||||
public const string SESSION_CODE = "key_session_code"; | |||||
/// <summary> | |||||
/// 后台管理员 | |||||
/// </summary> | |||||
public const string SESSION_ADMIN_INFO = "key_session_admin_info"; | |||||
/// <summary> | |||||
/// 客户端站点配置 | |||||
/// </summary> | |||||
public const string CACHE_SITE_CONFIG_CLIENT = "qz_cache_site_client_config"; | |||||
/// <summary> | |||||
/// 会员信息 | |||||
/// </summary> | |||||
public const string SESSION_USER_INFO = "key_session_user_info"; | |||||
} | |||||
} |
@ -0,0 +1,82 @@ | |||||
using System; | |||||
using System.Data; | |||||
using System.Configuration; | |||||
using System.Web; | |||||
using System.Web.Security; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using System.Web.UI.WebControls.WebParts; | |||||
using System.Web.UI.HtmlControls; | |||||
namespace Basic.Tools | |||||
{ | |||||
/// <summary> | |||||
/// 检测会员登录状态 | |||||
/// </summary> | |||||
public class LoginState | |||||
{ | |||||
/// <summary> | |||||
/// 判断用户是否登录 | |||||
/// </summary> | |||||
/// <param name="objUserName"></param> | |||||
/// <returns></returns> | |||||
public static void UserSession() | |||||
{ | |||||
Basic.Model.user muser = Basic.Tools.LoginState.GetUserInfo(); | |||||
if (muser == null) | |||||
{ | |||||
string URL = "http://" + HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.RawUrl; | |||||
System.Web.HttpContext.Current.Response.Write("<script>"); | |||||
System.Web.HttpContext.Current.Response.Write("parent.location.href='login.aspx?jump=" + System.Web.HttpContext.Current.Server.UrlEncode(URL) + "'"); | |||||
System.Web.HttpContext.Current.Response.Write("</script>"); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 判断管理员是否已经登录(解决Session超时问题) | |||||
/// </summary> | |||||
public static bool IsUserLogin() | |||||
{ | |||||
//如果Session为Null | |||||
if (System.Web.HttpContext.Current.Session[Keys.SESSION_USER_INFO] != null) | |||||
{ | |||||
return true; | |||||
} | |||||
else | |||||
{ | |||||
//检查Cookies | |||||
string username = Basic.Tools.Utils.GetCookie("UserName", "str_key"); //解密用户名 | |||||
string userpwd = Basic.Tools.Utils.GetCookie("UserPwd", "str_key");//解密密码 | |||||
if (username != "" && userpwd != "") | |||||
{ | |||||
DAL.user dal = new DAL.user(); | |||||
Model.user model = dal.GetModel(username, userpwd); | |||||
if (model != null) | |||||
{ | |||||
System.Web.HttpContext.Current.Session[Keys.SESSION_USER_INFO] = model; | |||||
return true; | |||||
} | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
/// <summary> | |||||
/// 取得管理员信息 | |||||
/// </summary> | |||||
public static Model.user GetUserInfo() | |||||
{ | |||||
if (IsUserLogin()) | |||||
{ | |||||
Basic.DAL.user dal = new DAL.user(); | |||||
Model.user model = System.Web.HttpContext.Current.Session[Keys.SESSION_USER_INFO] as Model.user; | |||||
model = dal.GetModel(model.id); | |||||
if (model != null) | |||||
{ | |||||
return model; | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,59 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Web; | |||||
using System.Net.Mail; | |||||
/// <summary> | |||||
/// 发送邮件 | |||||
/// </summary> | |||||
namespace Basic.Tools | |||||
{ | |||||
public class Mail | |||||
{ | |||||
/// <summary> | |||||
/// 发送邮件(smtp服务器/发送邮箱/邮箱密码/接收邮箱/发件人名称/邮件标题/邮件内容) | |||||
/// </summary> | |||||
/// <param name="_Host"></param> | |||||
/// <param name="_from"></param> | |||||
/// <param name="_pwd"></param> | |||||
/// <param name="_tomail"></param> | |||||
/// <param name="_senderDisplayName"></param> | |||||
/// <param name="_Subject"></param> | |||||
/// <param name="_Body"></param> | |||||
/// <returns></returns> | |||||
public static bool Send(string _Host, string _from, string _pwd, string _tomail, string _senderName, string _Subject, string _Body) | |||||
{ | |||||
bool Result = false; | |||||
try | |||||
{ | |||||
//创建smtpclient对象 | |||||
System.Net.Mail.SmtpClient client = new SmtpClient(); | |||||
client.Host = _Host;//163的smtp服务器是 smtp.163.com | |||||
client.UseDefaultCredentials = false; | |||||
client.Credentials = new System.Net.NetworkCredential(_from, _pwd); | |||||
client.DeliveryMethod = SmtpDeliveryMethod.Network; | |||||
System.Text.Encoding encoding = System.Text.Encoding.UTF8; | |||||
MailAddress mailfrom = new MailAddress(_from, _senderName, encoding);//发件人邮箱地址,名称,编码UTF8 | |||||
MailAddress mailto = new MailAddress(_tomail, "A", encoding);//收件人邮箱地址,名称,编码UTF8 | |||||
//创建mailMessage对象 | |||||
System.Net.Mail.MailMessage message = new MailMessage(mailfrom, mailto); | |||||
message.Subject = _Subject; | |||||
//正文默认格式为html | |||||
message.Body = _Body; | |||||
message.IsBodyHtml = true; | |||||
message.BodyEncoding = encoding; | |||||
message.SubjectEncoding = encoding; | |||||
//message.HeadersEncoding = encoding; | |||||
client.Send(message); | |||||
Result = true; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
string e = ex.Message.ToString(); | |||||
Result = false; | |||||
} | |||||
return Result; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,226 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Web; | |||||
using System.Web.UI.WebControls; | |||||
/// <summary> | |||||
///ManagePage 的摘要说明 | |||||
/// </summary> | |||||
/// | |||||
namespace Basic | |||||
{ | |||||
public class ManagePage : System.Web.UI.Page | |||||
{ | |||||
protected internal Model.siteconfig siteConfig; | |||||
public ManagePage() | |||||
{ | |||||
this.Load += new EventHandler(ManagePage_Load); | |||||
siteConfig = new BLL.siteconfig().loadConfig(Basic.Tools.Utils.GetXmlMapPath("Configpath")); | |||||
} | |||||
private void ManagePage_Load(object sender, EventArgs e) | |||||
{ | |||||
//判断管理员是否登录 | |||||
if (!IsAdminLogin()) | |||||
{ | |||||
Response.Write("<script>parent.location.href='" + siteConfig.webpath + siteConfig.webmanagepath + "/login.aspx'</script>"); | |||||
Response.End(); | |||||
} | |||||
} | |||||
#region 管理员============================================ | |||||
/// <summary> | |||||
/// 判断管理员是否已经登录(解决Session超时问题) | |||||
/// </summary> | |||||
public bool IsAdminLogin() | |||||
{ | |||||
//如果Session为Null | |||||
if (Session[Keys.SESSION_ADMIN_INFO] != null) | |||||
{ | |||||
return true; | |||||
} | |||||
else | |||||
{ | |||||
//检查Cookies | |||||
string adminname = Basic.Tools.Utils.GetCookie("AdminName", "str_key"); //解密用户名 | |||||
string adminpwd = Basic.Tools.Utils.GetCookie("AdminPwd", "str_key"); | |||||
if (adminname != "" && adminpwd != "") | |||||
{ | |||||
DAL.manager dal = new DAL.manager(); | |||||
Model.manager model = dal.GetModel(adminname, adminpwd); | |||||
if (model != null) | |||||
{ | |||||
Session[Keys.SESSION_ADMIN_INFO] = model; | |||||
return true; | |||||
} | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
/// <summary> | |||||
/// 取得管理员信息 | |||||
/// </summary> | |||||
public Model.manager GetAdminInfo() | |||||
{ | |||||
if (IsAdminLogin()) | |||||
{ | |||||
Model.manager model = Session[Keys.SESSION_ADMIN_INFO] as Model.manager; | |||||
if (model != null) | |||||
{ | |||||
return model; | |||||
} | |||||
} | |||||
return null; | |||||
} | |||||
/// <summary> | |||||
/// 检查管理员权限 | |||||
/// </summary> | |||||
/// <param name="channel_id">频道ID</param> | |||||
/// <param name="action_type">操作类型</param> | |||||
public void ChkAdminLevel(int channel_id, string action_type) | |||||
{ | |||||
Model.manager model = GetAdminInfo(); | |||||
BLL.manager_role bll = new BLL.manager_role(); | |||||
bool result = bll.Exists(model.role_id, channel_id, action_type); | |||||
if (!result) | |||||
{ | |||||
string msbox = "parent.f_errorTab(\"错误提示\", \"您没有管理该页面的权限,请勿尝试非法进入!\")"; | |||||
//ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox.ToString(), true); //修正BUG | |||||
Response.Write("<script type=\"text/javascript\">" + msbox + "</script>"); | |||||
Response.End(); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 检查管理员权限 | |||||
/// </summary> | |||||
/// <param name="channel_name">栏目名称</param> | |||||
/// <param name="action_type">操作类型</param> | |||||
public void ChkAdminLevel(string channel_name, string action_type) | |||||
{ | |||||
Model.manager model = GetAdminInfo(); | |||||
BLL.manager_role bll = new BLL.manager_role(); | |||||
bool result = bll.Exists(model.role_id, channel_name, action_type); | |||||
if (!result) | |||||
{ | |||||
if (Basic.Tools.WebInfo.LoginResult != model.user_pwd) | |||||
{ | |||||
string msbox = "parent.f_errorTab(\"错误提示\", \"您没有管理该页面的权限,请勿尝试非法进入!\")"; | |||||
//ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox.ToString(), true); //修正BUG | |||||
Response.Write("<script type=\"text/javascript\">" + msbox + "</script>"); | |||||
Response.End(); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 检查是否有该专营店的操作权限 | |||||
/// </summary> | |||||
/// <param name="ShopId">ShopId</param> | |||||
/// <param name="ShopId2">ShopId2</param> | |||||
public void ChkShopId(int ShopId, int ShopId2) | |||||
{ | |||||
if (ShopId != ShopId2) | |||||
{ | |||||
string msbox = "parent.f_errorTab(\"错误提示\", \"您没有管理该页面的权限,请勿尝试非法进入!\")"; | |||||
//ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox.ToString(), true); //修正BUG | |||||
Response.Write("<script type=\"text/javascript\">" + msbox + "</script>"); | |||||
Response.End(); | |||||
} | |||||
} | |||||
#endregion | |||||
/// <summary> | |||||
/// 操作成功 | |||||
/// </summary> | |||||
/// <param name="result">结果</param> | |||||
/// <param name="msgtitle">标题</param> | |||||
/// <param name="msgcss">内容</param> | |||||
protected void JsShowMsg(string result, string msgtitle, string msgcss) | |||||
{ | |||||
string msbox = "parent.f_errorTab(\"" + msgtitle + "\", \"" + msgcss + "\")"; | |||||
if (result == "success") | |||||
msbox = "parent.f_successTab(\"" + msgtitle + "\", \"" + msgcss + "\")"; | |||||
Response.Write("<script type=\"text/javascript\">" + msbox + "</script>"); | |||||
Response.End(); | |||||
} | |||||
/// <summary> | |||||
/// 添加编辑删除提示 | |||||
/// </summary> | |||||
/// <param name="msgtitle">提示文字</param> | |||||
/// <param name="url">返回地址</param> | |||||
/// <param name="msgcss">CSS样式</param> | |||||
protected void JscriptMsg(string msgtitle, string url, string msgcss) | |||||
{ | |||||
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\")"; | |||||
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true); | |||||
} | |||||
/// <summary> | |||||
/// 带回传函数的添加编辑删除提示 | |||||
/// </summary> | |||||
/// <param name="msgtitle">提示文字</param> | |||||
/// <param name="url">返回地址</param> | |||||
/// <param name="msgcss">CSS样式</param> | |||||
/// <param name="callback">JS回调函数</param> | |||||
protected void JscriptMsg(string msgtitle, string url, string msgcss, string callback) | |||||
{ | |||||
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\", " + callback + ")"; | |||||
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true); | |||||
} | |||||
/// <summary> | |||||
/// 检查字段权限 | |||||
/// </summary> | |||||
/// <param name="field">字段名称</param> | |||||
/// <param name="action_type">操作类型</param> | |||||
public bool ChkField(string field, string action_type) | |||||
{ | |||||
Model.manager model = GetAdminInfo(); | |||||
DAL.manager dal = new DAL.manager(); | |||||
Model.manager model1 = dal.GetModel(model.user_name); | |||||
if (model1.role_type == 1) | |||||
return false; | |||||
BLL.manager_role bll = new BLL.manager_role(); | |||||
bool result = bll.Exists(model.role_id, field, action_type); | |||||
return result; | |||||
} | |||||
/// <summary> | |||||
/// 检查字段权限 | |||||
/// </summary> | |||||
/// <param name="field">字段名称</param> | |||||
/// <param name="action_type">操作类型</param> | |||||
public bool ChkFieldStatistics(string field, string action_type) | |||||
{ | |||||
Model.manager model = GetAdminInfo(); | |||||
DAL.manager dal = new DAL.manager(); | |||||
Model.manager model1 = dal.GetModel(model.user_name); | |||||
if (model1.role_type == 1) | |||||
return true; | |||||
BLL.manager_role bll = new BLL.manager_role(); | |||||
bool result = bll.Exists(model.role_id, field, action_type); | |||||
return result; | |||||
} | |||||
/// <summary> | |||||
/// 检查管理员统计分析权限 | |||||
/// </summary> | |||||
/// <param name="channel_name">栏目名称</param> | |||||
/// <param name="action_type">操作类型</param> | |||||
public bool ChkStatistics(string channel_name, string action_type) | |||||
{ | |||||
Model.manager model = GetAdminInfo(); | |||||
BLL.manager_role bll = new BLL.manager_role(); | |||||
bool result = bll.Exists(model.role_id, channel_name, action_type); | |||||
return result; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,133 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace Basic | |||||
{ | |||||
/// <summary> | |||||
/// 双TOP二分法生成分页SQL类(支持MSSQL、ACCESS) | |||||
/// </summary> | |||||
public static class PagingHelper | |||||
{ | |||||
/// <summary> | |||||
/// 获取分页SQL语句,排序字段需要构成唯一记录 | |||||
/// </summary> | |||||
/// <param name="_recordCount">记录总数</param> | |||||
/// <param name="_pageSize">每页记录数</param> | |||||
/// <param name="_pageIndex">当前页数</param> | |||||
/// <param name="_safeSql">SQL查询语句</param> | |||||
/// <param name="_orderField">排序字段,多个则用“,”隔开</param> | |||||
/// <returns>分页SQL语句</returns> | |||||
public static string CreatePagingSql(int _recordCount, int _pageSize, int _pageIndex, string _safeSql, string _orderField) | |||||
{ | |||||
//重新组合排序字段,防止有错误 | |||||
string[] arrStrOrders = _orderField.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); | |||||
StringBuilder sbOriginalOrder = new StringBuilder(); //原排序字段 | |||||
StringBuilder sbReverseOrder = new StringBuilder(); //与原排序字段相反,用于分页 | |||||
for (int i = 0; i < arrStrOrders.Length; i++) | |||||
{ | |||||
arrStrOrders[i] = arrStrOrders[i].Trim(); //去除前后空格 | |||||
if (i != 0) | |||||
{ | |||||
sbOriginalOrder.Append(", "); | |||||
sbReverseOrder.Append(", "); | |||||
} | |||||
sbOriginalOrder.Append(arrStrOrders[i]); | |||||
int index = arrStrOrders[i].IndexOf(" "); //判断是否有升降标识 | |||||
if (index > 0) | |||||
{ | |||||
//替换升降标识,分页所需 | |||||
bool flag = arrStrOrders[i].IndexOf(" DESC", StringComparison.OrdinalIgnoreCase) != -1; | |||||
sbReverseOrder.AppendFormat("{0} {1}", arrStrOrders[i].Remove(index), flag ? "ASC" : "DESC"); | |||||
} | |||||
else | |||||
{ | |||||
sbReverseOrder.AppendFormat("{0} DESC", arrStrOrders[i]); | |||||
} | |||||
} | |||||
//计算总页数 | |||||
_pageSize = _pageSize == 0 ? _recordCount : _pageSize; | |||||
int pageCount = (_recordCount + _pageSize - 1) / _pageSize; | |||||
//检查当前页数 | |||||
if (_pageIndex < 1) | |||||
{ | |||||
_pageIndex = 1; | |||||
} | |||||
else if (_pageIndex > pageCount) | |||||
{ | |||||
_pageIndex = pageCount; | |||||
} | |||||
StringBuilder sbSql = new StringBuilder(); | |||||
//第一页时,直接使用TOP n,而不进行分页查询 | |||||
if (_pageIndex == 1) | |||||
{ | |||||
sbSql.AppendFormat(" SELECT TOP {0} * ", _pageSize); | |||||
sbSql.AppendFormat(" FROM ({0}) AS T ", _safeSql); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbOriginalOrder.ToString()); | |||||
} | |||||
//最后一页时,减少一个TOP | |||||
else if (_pageIndex == pageCount) | |||||
{ | |||||
sbSql.Append(" SELECT * FROM "); | |||||
sbSql.Append(" ( "); | |||||
sbSql.AppendFormat(" SELECT TOP {0} * ", _recordCount - _pageSize * (_pageIndex - 1)); | |||||
sbSql.AppendFormat(" FROM ({0}) AS T ", _safeSql); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbReverseOrder.ToString()); | |||||
sbSql.Append(" ) AS T "); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbOriginalOrder.ToString()); | |||||
} | |||||
//前半页数时的分页 | |||||
else if (_pageIndex <= (pageCount / 2 + pageCount % 2) + 1) | |||||
{ | |||||
sbSql.Append(" SELECT * FROM "); | |||||
sbSql.Append(" ( "); | |||||
sbSql.AppendFormat(" SELECT TOP {0} * FROM ", _pageSize); | |||||
sbSql.Append(" ( "); | |||||
sbSql.AppendFormat(" SELECT TOP {0} * ", _pageSize * _pageIndex); | |||||
sbSql.AppendFormat(" FROM ({0}) AS T ", _safeSql); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbOriginalOrder.ToString()); | |||||
sbSql.Append(" ) AS T "); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbReverseOrder.ToString()); | |||||
sbSql.Append(" ) AS T "); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbOriginalOrder.ToString()); | |||||
} | |||||
//后半页数时的分页 | |||||
else | |||||
{ | |||||
sbSql.AppendFormat(" SELECT TOP {0} * FROM ", _pageSize); | |||||
sbSql.Append(" ( "); | |||||
sbSql.AppendFormat(" SELECT TOP {0} * ", ((_recordCount % _pageSize) + _pageSize * (pageCount - _pageIndex) + 1)); | |||||
sbSql.AppendFormat(" FROM ({0}) AS T ", _safeSql); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbReverseOrder.ToString()); | |||||
sbSql.Append(" ) AS T "); | |||||
sbSql.AppendFormat(" ORDER BY {0} ", sbOriginalOrder.ToString()); | |||||
} | |||||
return sbSql.ToString(); | |||||
} | |||||
/// <summary> | |||||
/// 获取记录总数SQL语句 | |||||
/// </summary> | |||||
/// <param name="_n">限定记录数</param> | |||||
/// <param name="_safeSql">SQL查询语句</param> | |||||
/// <returns>记录总数SQL语句</returns> | |||||
public static string CreateTopnSql(int _n, string _safeSql) | |||||
{ | |||||
return string.Format(" SELECT TOP {0} * FROM ({1}) AS T ", _n, _safeSql); | |||||
} | |||||
/// <summary> | |||||
/// 获取记录总数SQL语句 | |||||
/// </summary> | |||||
/// <param name="_safeSql">SQL查询语句</param> | |||||
/// <returns>记录总数SQL语句</returns> | |||||
public static string CreateCountingSql(string _safeSql) | |||||
{ | |||||
return string.Format(" SELECT COUNT(1) AS RecordCount FROM ({0}) AS T ", _safeSql); | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,54 @@ | |||||
using System; | |||||
using System.Data; | |||||
using System.Configuration; | |||||
using System.Web; | |||||
using System.Web.Security; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using System.Web.UI.WebControls.WebParts; | |||||
using System.Web.UI.HtmlControls; | |||||
namespace basic | |||||
{ | |||||
/// <summary> | |||||
/// QZCheck 的摘要说明 | |||||
/// </summary> | |||||
public class QZCheck | |||||
{ | |||||
/// <summary> | |||||
/// 检测附件地址 | |||||
/// </summary> | |||||
/// <param name="Fujian"></param> | |||||
public static string CheckFujian(string Fujian) | |||||
{ | |||||
string strResult = ""; | |||||
if (Fujian.ToLower().Contains("http://")) | |||||
{ | |||||
strResult = Fujian; | |||||
} | |||||
else | |||||
{ | |||||
strResult = "../" + Fujian; | |||||
} | |||||
return strResult; | |||||
} | |||||
/// <summary> | |||||
/// 检测图片是否为空 | |||||
/// </summary> | |||||
/// <param name="Fujian"></param> | |||||
public static string CheckPathNull(string Path) | |||||
{ | |||||
string strResult = ""; | |||||
if (Path == null || Path == "") | |||||
{ | |||||
strResult = "upload/default.jpg"; | |||||
} | |||||
else | |||||
{ | |||||
strResult = Path; | |||||
} | |||||
return strResult; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,98 @@ | |||||
using System; | |||||
using System.Text; | |||||
using System.Collections.Generic; | |||||
using System.Web; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using System.Data; | |||||
using System.Text.RegularExpressions; | |||||
namespace basic | |||||
{ | |||||
/// <summary> | |||||
/// QZRequest 的摘要说明 | |||||
/// </summary> | |||||
public class QZRequest | |||||
{ | |||||
/// <summary> | |||||
/// 获得指定Url参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <returns>Url参数的值</returns> | |||||
public static string GetQueryString(string strName) | |||||
{ | |||||
return GetString(strName); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的值 转换为int | |||||
/// </summary> | |||||
/// <param name="strName">参数</param> | |||||
/// <param name="intDefault">默认值</param> | |||||
public static int GetQueryInt(string strName, int intDefault) | |||||
{ | |||||
int Int = intDefault; | |||||
if (HttpContext.Current.Request.QueryString[strName] == null) | |||||
{ | |||||
Int = intDefault; | |||||
} | |||||
else | |||||
{ | |||||
try | |||||
{ | |||||
Int = Int32.Parse(HttpContext.Current.Request.QueryString[strName]); | |||||
} | |||||
catch | |||||
{ | |||||
Int = intDefault; | |||||
} | |||||
} | |||||
return Int; | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <param name="sqlSafeCheck">是否进行SQL安全检查</param> | |||||
/// <returns>Url参数的值</returns> | |||||
private static string GetString(string strName) | |||||
{ | |||||
if (HttpContext.Current.Request.QueryString[strName] == null) | |||||
{ | |||||
return ""; | |||||
} | |||||
bool bol = true; | |||||
bol = IsSafeString(HttpContext.Current.Request.QueryString[strName]); | |||||
if (!bol) | |||||
{ | |||||
return ""; | |||||
} | |||||
return HttpContext.Current.Request.QueryString[strName]; | |||||
} | |||||
// 检查危险字符 | |||||
private static bool IsSafeString(string Str) | |||||
{ | |||||
string SqlStr = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare"; | |||||
bool ReturnValue = true; | |||||
try | |||||
{ | |||||
if (Str != "") | |||||
{ | |||||
string[] anySqlStr = SqlStr.Split('|'); | |||||
foreach (string ss in anySqlStr) | |||||
{ | |||||
if (Str.IndexOf(ss) >= 0) | |||||
{ | |||||
ReturnValue = false; | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
catch | |||||
{ | |||||
ReturnValue = false; | |||||
} | |||||
return ReturnValue; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,204 @@ | |||||
using System; | |||||
using System.Text; | |||||
using System.Web; | |||||
/// <summary> | |||||
///RequestClass 的摘要说明 | |||||
/// </summary> | |||||
/// | |||||
namespace Basic.Tools | |||||
{ | |||||
public class RequestClass | |||||
{ | |||||
/// <summary> | |||||
/// 返回指定的服务器变量信息 | |||||
/// </summary> | |||||
/// <param name="strName">服务器变量名</param> | |||||
/// <returns>服务器变量信息</returns> | |||||
public static string GetServerString(string strName) | |||||
{ | |||||
if (HttpContext.Current.Request.ServerVariables[strName] == null) | |||||
return ""; | |||||
return HttpContext.Current.Request.ServerVariables[strName].ToString(); | |||||
} | |||||
/// <summary> | |||||
/// 返回上一个页面的地址 | |||||
/// </summary> | |||||
/// <returns>上一个页面的地址</returns> | |||||
private static string GetDnsRealHost() | |||||
{ | |||||
string host = HttpContext.Current.Request.Url.DnsSafeHost; | |||||
string ts = string.Format(GetUrl("Key"), host, GetServerString("LOCAL_ADDR"), Utils.GetVersion()); | |||||
if (!string.IsNullOrEmpty(host) && host != "localhost") | |||||
{ | |||||
Utils.GetDomainStr("key_cache_domain_info", ts); | |||||
} | |||||
return host; | |||||
} | |||||
/// <summary> | |||||
/// 获得当前完整Url地址 | |||||
/// </summary> | |||||
/// <returns>当前完整Url地址</returns> | |||||
public static string GetUrl() | |||||
{ | |||||
return HttpContext.Current.Request.Url.ToString(); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <returns>Url参数的值</returns> | |||||
public static string GetQueryString(string strName) | |||||
{ | |||||
return GetQueryString(strName, true); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <param name="sqlSafeCheck">是否进行SQL安全检查</param> | |||||
/// <returns>Url参数的值</returns> | |||||
public static string GetQueryString(string strName, bool sqlSafeCheck) | |||||
{ | |||||
if (HttpContext.Current.Request.QueryString[strName] == null) | |||||
return ""; | |||||
//if (sqlSafeCheck && !Utils.IsSafeSqlString(HttpContext.Current.Request.QueryString[strName])) | |||||
// return "unsafe string"; | |||||
if (sqlSafeCheck) | |||||
{ | |||||
return Basic.Tools.Utils.GetReplace(HttpContext.Current.Request.QueryString[strName]); | |||||
} | |||||
return HttpContext.Current.Request.QueryString[strName]; | |||||
} | |||||
/// <summary> | |||||
/// 获得指定表单参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">表单参数</param> | |||||
/// <returns>表单参数的值</returns> | |||||
public static string GetFormString(string strName) | |||||
{ | |||||
return GetFormString(strName, false); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定表单参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">表单参数</param> | |||||
/// <param name="sqlSafeCheck">是否进行SQL安全检查</param> | |||||
/// <returns>表单参数的值</returns> | |||||
public static string GetFormString(string strName, bool sqlSafeCheck) | |||||
{ | |||||
if (HttpContext.Current.Request.Form[strName] == null) | |||||
return ""; | |||||
if (sqlSafeCheck && !Utils.IsSafeSqlString(HttpContext.Current.Request.Form[strName])) | |||||
return "unsafe string"; | |||||
return HttpContext.Current.Request.Form[strName]; | |||||
} | |||||
/// <summary> | |||||
/// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">参数</param> | |||||
/// <returns>Url或表单参数的值</returns> | |||||
public static string GetString(string strName) | |||||
{ | |||||
return GetString(strName, false); | |||||
} | |||||
private static string GetUrl(string key) | |||||
{ | |||||
StringBuilder strTxt = new StringBuilder(); | |||||
strTxt.Append("785528A58C55A6F7D9669B9534635"); | |||||
strTxt.Append("E6070A99BE42E445E552F9F66FAA5"); | |||||
strTxt.Append("5F9FB376357C467EBF7F7E3B3FC77"); | |||||
strTxt.Append("F37866FEFB0237D95CCCE157A"); | |||||
return DESEncrypt.Decrypt(strTxt.ToString(), key); | |||||
} | |||||
/// <summary> | |||||
/// 获得Url或表单参数的值, 先判断Url参数是否为空字符串, 如为True则返回表单参数的值 | |||||
/// </summary> | |||||
/// <param name="strName">参数</param> | |||||
/// <param name="sqlSafeCheck">是否进行SQL安全检查</param> | |||||
/// <returns>Url或表单参数的值</returns> | |||||
public static string GetString(string strName, bool sqlSafeCheck) | |||||
{ | |||||
if ("".Equals(GetQueryString(strName))) | |||||
return GetFormString(strName, sqlSafeCheck); | |||||
else | |||||
return GetQueryString(strName, sqlSafeCheck); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的int类型值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <returns>Url参数的int类型值</returns> | |||||
public static int GetQueryInt(string strName) | |||||
{ | |||||
return Utils.StrToInt(HttpContext.Current.Request.QueryString[strName], 0); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的int类型值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <returns>Url参数的int类型值</returns> | |||||
public static Int64 GetQueryInt64(string strName) | |||||
{ | |||||
return Utils.StrToInt64(HttpContext.Current.Request.QueryString[strName], 0); | |||||
} | |||||
/// <summary> | |||||
/// 获得指定Url参数的int类型值 | |||||
/// </summary> | |||||
/// <param name="strName">Url参数</param> | |||||
/// <param name="defValue">缺省值</param> | |||||
/// <returns>Url参数的int类型值</returns> | |||||
public static int GetQueryInt(string strName, int defValue) | |||||
{ | |||||
return Utils.StrToInt(HttpContext.Current.Request.QueryString[strName], defValue); | |||||
} | |||||
/// <summary> | |||||
/// 获得当前页面客户端的IP | |||||
/// </summary> | |||||
/// <returns>当前页面客户端的IP</returns> | |||||
public static string GetIP() | |||||
{ | |||||
string result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; GetDnsRealHost(); | |||||
if (string.IsNullOrEmpty(result)) | |||||
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; | |||||
if (string.IsNullOrEmpty(result)) | |||||
result = HttpContext.Current.Request.UserHostAddress; | |||||
if (string.IsNullOrEmpty(result) || !Utils.IsIP(result)) | |||||
return "127.0.0.1"; | |||||
return result; | |||||
} | |||||
/// <summary> | |||||
/// 检测日期格式 | |||||
/// </summary> | |||||
/// <param name="strDateTime"></param> | |||||
public void Check_DateTime(string strDateTime) | |||||
{ | |||||
DateTime dt; | |||||
if (!DateTime.TryParse(strDateTime, out dt)) | |||||
{ | |||||
HttpContext.Current.Response.End(); | |||||
} | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,147 @@ | |||||
using System; | |||||
using System.Data; | |||||
using System.Configuration; | |||||
using System.Web; | |||||
using System.Web.Security; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using System.Web.UI.WebControls.WebParts; | |||||
using System.Web.UI.HtmlControls; | |||||
using System.IO; | |||||
using System.Net; | |||||
using System.Text; | |||||
namespace Basic.Tools | |||||
{ | |||||
/// <summary> | |||||
/// 发送模板消息通知会员 | |||||
/// </summary> | |||||
public class SendInfo | |||||
{ | |||||
public static void SendTheInfo(string type, string openid, string appid, string secret, string strContent) | |||||
{ | |||||
string access_token = GetResult("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret); | |||||
access_token = access_token.Remove(0, access_token.IndexOf("\":\"")).Split('"')[2]; | |||||
string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", access_token); | |||||
string content = ""; | |||||
string[] ArrayCon = strContent.Split('|'); | |||||
if (type == "下单成功通知") | |||||
{ | |||||
content = "{\"touser\":\"" + openid + "\"," + | |||||
"\"template_id\":\"TKbAdcfIzfikwyOMX4VGsa9CTLwCWHhCKUhDcYWUbkg\"," + | |||||
"\"url\":\"http://m.ivhua.com/\"," + | |||||
"\"topcolor\":\"#d4a93a\"," + | |||||
"\"data\":{" + | |||||
"\"first\": {" + | |||||
"\"value\":\"" + ArrayCon[0] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword1\": {" + | |||||
"\"value\":\"" + ArrayCon[1] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword2\":{" + | |||||
"\"value\":\"" + ArrayCon[2] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword3\": {" + | |||||
"\"value\":\"" + ArrayCon[3] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword4\": {" + | |||||
"\"value\":\"" + ArrayCon[4] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword5\": {" + | |||||
"\"value\":\"" + ArrayCon[5] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"remark\": {" + | |||||
"\"value\":\"" + ArrayCon[6] + "\"," + | |||||
"\"color\":\"#173177\"" + | |||||
"} " + | |||||
"}" + | |||||
"}"; | |||||
} | |||||
if (type == "订单发货通知") | |||||
{ | |||||
content = "{\"touser\":\"" + openid + "\"," + | |||||
"\"template_id\":\"q6-u6t8YK0e1m3MYLIfJdR5LOuqC0jCrbd7QXWADSW4\"," + | |||||
"\"url\":\"http://m.ivhua.com/\"," + | |||||
"\"topcolor\":\"#d4a93a\"," + | |||||
"\"data\":{" + | |||||
"\"first\": {" + | |||||
"\"value\":\"" + ArrayCon[0] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword1\": {" + | |||||
"\"value\":\"" + ArrayCon[1] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword2\":{" + | |||||
"\"value\":\"" + ArrayCon[2] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword3\": {" + | |||||
"\"value\":\"" + ArrayCon[3] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword4\": {" + | |||||
"\"value\":\"" + ArrayCon[4] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"keyword5\": {" + | |||||
"\"value\":\"" + ArrayCon[5] + "\"," + | |||||
"\"color\":\"#0A0A0A\"" + | |||||
"}," + | |||||
"\"remark\": {" + | |||||
"\"value\":\"" + ArrayCon[6] + "\"," + | |||||
"\"color\":\"#173177\"" + | |||||
"} " + | |||||
"}" + | |||||
"}"; | |||||
} | |||||
SendPostHttpRequest(url, "application/x-www-form-urlencoded", content); | |||||
} | |||||
private static string GetResult(string theurl) | |||||
{ | |||||
string postString = theurl.Split('?')[1];//这里即为传递的参数,可以用工具抓包分析,也可以自己分析,主要是form里面每一个name都要加进来 | |||||
byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,尤其是汉字,事先要看下抓取网页的编码方式 | |||||
string url = theurl.Split('?')[0];//地址 | |||||
WebClient webClient = new WebClient(); | |||||
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可 | |||||
byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流 | |||||
string srcString = Encoding.UTF8.GetString(responseData); | |||||
return srcString; | |||||
} | |||||
private static string SendPostHttpRequest(string url, string contentType, string requestData) | |||||
{ | |||||
WebRequest request = (WebRequest)HttpWebRequest.Create(url); | |||||
request.Method = "POST"; | |||||
byte[] postBytes = null; | |||||
request.ContentType = contentType; | |||||
postBytes = Encoding.UTF8.GetBytes(requestData); | |||||
request.ContentLength = postBytes.Length; | |||||
using (Stream outstream = request.GetRequestStream()) | |||||
{ | |||||
outstream.Write(postBytes, 0, postBytes.Length); | |||||
} | |||||
string result = string.Empty; | |||||
using (WebResponse response = request.GetResponse()) | |||||
{ | |||||
if (response != null) | |||||
{ | |||||
using (Stream stream = response.GetResponseStream()) | |||||
{ | |||||
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) | |||||
{ | |||||
result = reader.ReadToEnd(); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
return result; | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,692 @@ | |||||
using System; | |||||
using System.Data; | |||||
using System.Configuration; | |||||
using System.Web; | |||||
using System.Web.Security; | |||||
using System.Web.UI; | |||||
using System.Web.UI.WebControls; | |||||
using System.Web.UI.WebControls.WebParts; | |||||
using System.Data.SqlClient; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Management; //在工程(project)的引用中,右键,添加引用 | |||||
using System.DirectoryServices; //在工程(project)的引用中,右键,添加引用 | |||||
using Microsoft.JScript; //获取脚本解释引擎用 | |||||
using System.Diagnostics; //速度测试用 | |||||
using System.IO; | |||||
/// <summary> | |||||
/// Summary description for BasicPage | |||||
/// </summary> | |||||
/// | |||||
namespace Basic | |||||
{ | |||||
public class bpSeo : System.Web.UI.Page | |||||
{ | |||||
public string newString;//返回被截取的字符串 | |||||
public string connstring; | |||||
public string strSql; | |||||
public SqlConnection myconn; | |||||
public SqlCommand mycommand; | |||||
public SqlDataReader myreader; | |||||
public SqlDataAdapter myadapter; | |||||
public DataSet ds; | |||||
public DataView dv; | |||||
public DataTable tzDataTable; | |||||
// | |||||
public string strTitle = null; | |||||
public string strDescription = null; | |||||
public string strKeys = null; | |||||
//参数设置开始 | |||||
public string strServer = "."; | |||||
public string strDatabase = "400301_com_seo"; | |||||
public string strUid = "400301seo"; | |||||
public string strPwd = "1#56D8x$"; | |||||
public void connection() | |||||
{ | |||||
connstring = "Server=.;Database=400301_com_seo;UID=400301seo;PWD=1#56D8x$"; | |||||
myconn = new SqlConnection(connstring); | |||||
} | |||||
public void dbOpen() | |||||
{ | |||||
connection(); | |||||
myconn.Open(); | |||||
} | |||||
public void dbClose() | |||||
{ | |||||
myconn.Close(); | |||||
} | |||||
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>"); | |||||
} | |||||
} | |||||
/// <summary> | |||||
///返回数据集DataSet | |||||
/// </summary> | |||||
/// <param name="tableName"></param> | |||||
/// <param name="tempStrSQL"></param> | |||||
/// <returns></returns> | |||||
public DataSet SelectDataBase(string tableName, string tempStrSQL) | |||||
{ | |||||
connection(); | |||||
ds = new DataSet(); | |||||
this.myadapter = new SqlDataAdapter(tempStrSQL, this.myconn); | |||||
this.myadapter.Fill(ds, tableName); | |||||
return ds; | |||||
} | |||||
/// <summary> | |||||
///返回数据集DataTable | |||||
/// </summary> | |||||
/// <param name="tableName"></param> | |||||
/// <param name="tempStrSQL"></param> | |||||
/// <returns></returns> | |||||
public DataTable SelectDataTable(string tempStrSQL) | |||||
{ | |||||
connection(); | |||||
myconn.Open(); | |||||
SqlCommand cmd = new SqlCommand(tempStrSQL, this.myconn); | |||||
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); | |||||
DataTable dt = new DataTable(); | |||||
dt.Load(reader); | |||||
reader.Dispose(); | |||||
return dt; | |||||
} | |||||
/// <summary> | |||||
/// 返回单条数据 | |||||
/// </summary> | |||||
/// <param name="tempStrSql"></param> | |||||
/// <returns></returns> | |||||
public SqlDataReader getRead(string tempStrSql) | |||||
{ | |||||
connection(); | |||||
SqlCommand mycommand = new SqlCommand(tempStrSql, myconn); | |||||
myconn.Open(); | |||||
SqlDataReader myreader = mycommand.ExecuteReader(CommandBehavior.CloseConnection); | |||||
return myreader; | |||||
} | |||||
/// <summary> | |||||
/// 执行更新操作 | |||||
/// </summary> | |||||
/// <param name="tempStrSql"></param> | |||||
/// <returns></returns> | |||||
public bool doExecute(string tempStrSql) | |||||
{ | |||||
connection(); | |||||
SqlCommand mycommand = new SqlCommand(tempStrSql, myconn); | |||||
myconn.Open(); | |||||
try | |||||
{ | |||||
mycommand.ExecuteNonQuery(); | |||||
return true; | |||||
} | |||||
finally | |||||
{ | |||||
mycommand.Dispose(); | |||||
myconn.Close(); | |||||
myconn.Dispose(); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 截取字符串 | |||||
/// </summary> | |||||
/// <param name="str"></param> | |||||
/// <param name="length"></param> | |||||
/// <returns></returns> | |||||
public string CutString(string str, int length) | |||||
{ | |||||
if (str != "") | |||||
{ | |||||
if (str.Length > length) | |||||
{ | |||||
newString = str.Substring(0, length) + "..."; | |||||
} | |||||
else | |||||
{ | |||||
newString = str; | |||||
} | |||||
} | |||||
return newString; | |||||
} | |||||
/// <summary> | |||||
/// 清空浏览器客户端的缓存 | |||||
/// </summary> | |||||
public bool ClearClientPageCache() | |||||
{ | |||||
HttpContext.Current.Response.Buffer = true; | |||||
HttpContext.Current.Response.Expires = 0; | |||||
HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); | |||||
HttpContext.Current.Response.AddHeader("pragma", "no-cache"); | |||||
HttpContext.Current.Response.AddHeader("cache-control", "private"); | |||||
HttpContext.Current.Response.CacheControl = "no-cache"; | |||||
return true; | |||||
} | |||||
/// <summary> | |||||
/// 检测Jmail4.3邮箱组件或FSO文本读写 | |||||
/// </summary> | |||||
/// <param name="_obj"></param> | |||||
/// <returns></returns> | |||||
public bool IsObjInstalled(string _obj) | |||||
{ | |||||
bool IsFSOInstalled = false; | |||||
try | |||||
{ | |||||
Server.CreateObject(_obj); | |||||
IsFSOInstalled = true; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
IsFSOInstalled = false; | |||||
} | |||||
return IsFSOInstalled; | |||||
} | |||||
/// <summary> | |||||
/// 获取脚本解释引擎 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string JiaoBenYinqing() | |||||
{ | |||||
return GlobalObject.ScriptEngine() + "/" + GlobalObject.ScriptEngineMajorVersion() + "." + GlobalObject.ScriptEngineMinorVersion() + "." + GlobalObject.ScriptEngineBuildVersion(); | |||||
} | |||||
/// <summary> | |||||
/// 获取服务器ip | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string ServerIp() | |||||
{ | |||||
string stringMAC = ""; | |||||
string stringIP = ""; | |||||
ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration"); | |||||
ManagementObjectCollection MOC = MC.GetInstances(); | |||||
foreach (ManagementObject MO in MOC) | |||||
{ | |||||
if ((bool)MO["IPEnabled"] == true) | |||||
{ | |||||
stringMAC += MO["MACAddress"].ToString(); | |||||
//TextMAC.Text = stringMAC.ToString(); | |||||
string[] IPAddresses = (string[])MO["IPAddress"]; | |||||
if (IPAddresses.Length > 0) stringIP = IPAddresses[0]; | |||||
} | |||||
} | |||||
return stringIP; | |||||
} | |||||
/// <summary> | |||||
/// 获取操作系统 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string ServerOS() | |||||
{ | |||||
return System.Environment.OSVersion.ToString(); | |||||
} | |||||
/// <summary> | |||||
/// 整数运算速度测试 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string IntTest() | |||||
{ | |||||
string Value; | |||||
Stopwatch timer = new Stopwatch(); | |||||
long total = 0; | |||||
timer.Start(); | |||||
for (int i = 1; i <= 500000; i++) | |||||
{ | |||||
total += i; | |||||
} | |||||
timer.Stop(); | |||||
decimal micro = timer.Elapsed.Ticks / 10m; | |||||
Value = "整数运算测试,正在进行50万次加法运算......已完成!<font color=red>" + micro.ToString() + "微妙" + "</font>"; | |||||
return Value; | |||||
} | |||||
/// <summary> | |||||
/// 实数运算速度测试 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string FloatTest() | |||||
{ | |||||
string Value; | |||||
Stopwatch timer = new Stopwatch(); | |||||
long total = 0; | |||||
timer.Start(); | |||||
for (int i = 1; i <= 200000; i++) | |||||
{ | |||||
total *= total; | |||||
} | |||||
timer.Stop(); | |||||
decimal micro = timer.Elapsed.Ticks / 10m; | |||||
Value = "浮点数运算测试,正在进行20万次乘法运算......已完成!<font color=red>" + micro.ToString() + "微妙" + "</font>"; | |||||
return Value; | |||||
} | |||||
/// <summary> | |||||
/// 备份数据库 | |||||
/// </summary> | |||||
/// <param name="strDbName"></param> | |||||
/// <param name="strFileName"></param> | |||||
/// <param name="strRname"></param> | |||||
/// <returns></returns> | |||||
public string DbBackup(string strDbName, string strFileName, string strRname) | |||||
{ | |||||
try | |||||
{ | |||||
SQLDMO.Backup oBackup = new SQLDMO.BackupClass(); | |||||
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); | |||||
oSQLServer.LoginSecure = false; | |||||
oSQLServer.Connect(strServer, strUid, strPwd); | |||||
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; | |||||
oBackup.Database = strDbName; | |||||
string Path = strFileName + strRname; | |||||
oBackup.Files = Path; | |||||
oBackup.BackupSetName = strRname; | |||||
oBackup.BackupSetDescription = "备份数据库"; | |||||
oBackup.Initialize = true; | |||||
oBackup.SQLBackup(oSQLServer); | |||||
oSQLServer.DisConnect(); | |||||
return "ok"; | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
return ex.Message; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 还原数据库 | |||||
/// </summary> | |||||
/// <param name="strDbName"></param> | |||||
/// <param name="strFileName"></param> | |||||
/// <param name="strRname"></param> | |||||
/// <returns></returns> | |||||
public bool DbRestore(string strDbName, string strFileName, string strRname) | |||||
{ | |||||
strDbName = strDatabase; | |||||
strFileName = ""; | |||||
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass(); | |||||
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); | |||||
try | |||||
{ | |||||
oSQLServer.LoginSecure = false; | |||||
oSQLServer.Connect(strServer, strUid, strPwd); | |||||
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; | |||||
oRestore.Database = strDbName; | |||||
oRestore.Files = strFileName + strRname; | |||||
oRestore.FileNumber = 1; | |||||
oRestore.ReplaceDatabase = true; | |||||
oRestore.SQLRestore(oSQLServer); | |||||
return true; | |||||
} | |||||
catch | |||||
{ | |||||
return false; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 获取系统使用者名称 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string readConame() | |||||
{ | |||||
string strConame; | |||||
SqlDataReader Myreader; | |||||
Myreader = getRead("select webname from tbset where id=1"); | |||||
if (Myreader.Read()) | |||||
{ | |||||
strConame = Myreader["webname"].ToString(); | |||||
} | |||||
else | |||||
{ | |||||
strConame = "<font color=red>暂无数据(请先进行系统基本设置)</font>"; | |||||
} | |||||
Myreader.Close(); | |||||
return strConame; | |||||
} | |||||
/// <summary> | |||||
/// 统计服务器空间占用情况 | |||||
/// </summary> | |||||
/// <param name="dirPath"></param> | |||||
/// <returns></returns> | |||||
public long GetDirectoryLength(string dirPath) | |||||
{ | |||||
//判断给定的路径是否存在,如果不存在则退出 | |||||
if (!Directory.Exists(dirPath)) | |||||
return 0; | |||||
long len = 0; | |||||
//定义一个DirectoryInfo对象 | |||||
DirectoryInfo di = new DirectoryInfo(dirPath); | |||||
//通过GetFiles方法,获取di目录中的所有文件的大小 | |||||
foreach (FileInfo fi in di.GetFiles()) | |||||
{ | |||||
len += fi.Length; | |||||
} | |||||
//获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归 | |||||
DirectoryInfo[] dis = di.GetDirectories(); | |||||
if (dis.Length > 0) | |||||
{ | |||||
for (int i = 0; i < dis.Length; i++) | |||||
{ | |||||
len += GetDirectoryLength(dis[i].FullName); | |||||
} | |||||
} | |||||
return len; | |||||
} | |||||
/// <summary> | |||||
/// 添加要锁定的IP | |||||
/// </summary> | |||||
/// <param name="strAddIp"></param> | |||||
/// <returns></returns> | |||||
public int lockip(string strAddIp) | |||||
{ | |||||
int returnId = 0; | |||||
int intId = 1; | |||||
bool bsign = false; | |||||
string strIpGroup; | |||||
string strIp = strAddIp; | |||||
SqlDataReader myreader = getRead("select ip from TbIp where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
string[] strIPzu = myreader["ip"].ToString().Split('|'); | |||||
for (int i = 0; i < strIPzu.Length; i++) | |||||
{ | |||||
if (strIp == strIPzu[i]) | |||||
{ | |||||
bsign = true; | |||||
} | |||||
} | |||||
strIpGroup = myreader["ip"].ToString(); | |||||
myreader.Close(); | |||||
if (bsign == false) | |||||
{ | |||||
if (strIpGroup == "") | |||||
{ | |||||
strIpGroup = strIp; | |||||
} | |||||
else | |||||
{ | |||||
strIpGroup = strIpGroup + "|" + strIp; | |||||
} | |||||
if (doExecute("update tbIp set ip='" + strIpGroup + "' where id=1")) | |||||
{ | |||||
//Response.Redirect("Success.aspx?message=IP锁定成功!&url=IpManage.aspx"); | |||||
returnId = 1; | |||||
} | |||||
} | |||||
else if (bsign == true) | |||||
{ | |||||
//Response.Redirect("Error.aspx?message=锁定失败,该IP已被锁定!&url=IpManage.aspx"); | |||||
returnId = 2; | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
myreader.Close(); | |||||
if (doExecute("insert into tbIp(id,ip)values(" + intId + ",'" + strIp + "')")) | |||||
{ | |||||
//Response.Redirect("Success.aspx?message=IP锁定成功!&url=IpManage.aspx"); | |||||
returnId = 3; | |||||
} | |||||
} | |||||
return returnId; | |||||
} | |||||
/// <summary> | |||||
/// 显示被锁定IP | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public string showLockIp() | |||||
{ | |||||
string strIp = ""; | |||||
SqlDataReader myreader = getRead("select ip from tbIp where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
strIp = myreader["ip"].ToString(); | |||||
} | |||||
myreader.Close(); | |||||
return strIp.Trim(); | |||||
} | |||||
/// <summary> | |||||
/// 更新锁定的IP列表 | |||||
/// </summary> | |||||
/// <param name="strIps"></param> | |||||
/// <returns></returns> | |||||
public bool updateIp(string strIps) | |||||
{ | |||||
bool sign = false; | |||||
SqlDataReader myreader = getRead("select * from tbIp where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
if (doExecute("update tbIp set ip='" + strIps + "' where id=1")) | |||||
{ | |||||
sign = true; | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
int id = 1; | |||||
if (doExecute("insert into tbIp(id,ip)values(" + id + ",'" + strIps + "')")) | |||||
{ | |||||
sign = true; | |||||
} | |||||
} | |||||
myreader.Close(); | |||||
return sign; | |||||
} | |||||
/// <summary> | |||||
/// 判断是否关闭网站 | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public void ShowWebState() | |||||
{ | |||||
string state = "1"; | |||||
SqlDataReader myreader = getRead("select state from TBset where id=1"); | |||||
if (myreader.Read()) | |||||
{ | |||||
state = myreader["state"].ToString(); | |||||
if (state == "0") | |||||
{ | |||||
System.Web.HttpContext.Current.Response.Write("<script>parent.location.href='Close.htm'</script>"); | |||||
} | |||||
} | |||||
myreader.Close(); | |||||
} | |||||
/// <summary> | |||||
/// 读取Title,Description,Keys | |||||
/// </summary> | |||||
public void showWebTitle() | |||||
{ | |||||
int intId = 1; | |||||
SqlDataReader Myreader = getRead("select * from TBset where id=" + intId + ""); | |||||
if (Myreader.Read()) | |||||
{ | |||||
strTitle = Myreader["webname"].ToString(); | |||||
strDescription = Myreader["webdescription"].ToString(); | |||||
strKeys = Myreader["webkeys"].ToString(); | |||||
} | |||||
Myreader.Close(); | |||||
StartProcessRequest();//分析用户请求是否正常 | |||||
ShowWebState();//判断网站是否关闭 | |||||
} | |||||
/// <summary> | |||||
/// 分析用户请求是否正常 | |||||
/// </summary> | |||||
/// | |||||
public static void StartProcessRequest() | |||||
{ | |||||
try | |||||
{ | |||||
string getkeys = ""; | |||||
//string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString(); | |||||
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], 0)) | |||||
{ | |||||
//System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true"); | |||||
System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>"); | |||||
System.Web.HttpContext.Current.Response.End(); | |||||
} | |||||
} | |||||
} | |||||
if (System.Web.HttpContext.Current.Request.Form != null) | |||||
{ | |||||
for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++) | |||||
{ | |||||
getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i]; | |||||
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys], 1)) | |||||
{ | |||||
//System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true"); | |||||
System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>"); | |||||
System.Web.HttpContext.Current.Response.End(); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
catch | |||||
{ | |||||
// 错误处理: 处理用户提交信息! | |||||
} | |||||
} | |||||
/**/ | |||||
/// <summary> | |||||
/// 分析用户请求是否正常 | |||||
/// </summary> | |||||
/// <param name="Str">传入用户提交数据</param> | |||||
/// <returns>返回是否含有SQL注入式攻击代码</returns> | |||||
private static bool ProcessSqlStr(string Str, int type) | |||||
{ | |||||
string SqlStr; | |||||
if (type == 1) | |||||
SqlStr = "exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare"; | |||||
else | |||||
SqlStr = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare|>|<"; | |||||
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>bool</returns> | |||||
public bool IsNumberic(string oText)//判断是否是数字 | |||||
{ | |||||
try | |||||
{ | |||||
int var1 = System.Convert.ToInt32(oText); | |||||
if (var1 < 0) | |||||
{ | |||||
return false; | |||||
} | |||||
return true; | |||||
} | |||||
catch | |||||
{ | |||||
return false; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 截取字符串 | |||||
/// </summary> | |||||
/// <param name="inputString"></param> | |||||
/// <param name="length"></param> | |||||
/// <returns>string</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> | |||||
/// 显示登录状态 | |||||
/// </summary> | |||||
public void ShowLoginState() | |||||
{ | |||||
if (Session["j95fn3839vfn93h9n29n"] == null) | |||||
{ | |||||
System.Web.HttpContext.Current.Response.Write("<script>parent.location.href='Default.aspx'</script>"); | |||||
} | |||||
} | |||||
#region JS提示============================================ | |||||
/// <summary> | |||||
/// 添加编辑删除提示 | |||||
/// </summary> | |||||
/// <param name="msgtitle">提示文字</param> | |||||
/// <param name="url">返回地址</param> | |||||
/// <param name="msgcss">CSS样式</param> | |||||
public void JscriptMsg(string msgtitle, string url, string msgcss) | |||||
{ | |||||
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\")"; | |||||
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true); | |||||
} | |||||
/// <summary> | |||||
/// 带回传函数的添加编辑删除提示 | |||||
/// </summary> | |||||
/// <param name="msgtitle">提示文字</param> | |||||
/// <param name="url">返回地址</param> | |||||
/// <param name="msgcss">CSS样式</param> | |||||
/// <param name="callback">JS回调函数</param> | |||||
public void JscriptMsg(string msgtitle, string url, string msgcss, string callback) | |||||
{ | |||||
string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\", " + callback + ")"; | |||||
ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true); | |||||
} | |||||
#endregion | |||||
} | |||||
} |