📄 webform1.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices;
using System.Text;
using System.Xml;
namespace test
{
/// <summary>
/// 创建日期:2005-09-16
/// 创建人:信泽尔-孟永生
/// 功能:调用DLL的方法生成密码存入数据库;判断来访IP是否合法的。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label labPassWord;
#region 引用wcpw.dll
[DllImport("wcpw.dll")]
static extern void GeneratePW(string Userid, string ProtectedItem, string PresentationId, string RijnDaelKey, StringBuilder Password);
#endregion
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
#region 读取配置文件XML
private string GetConfigInfo(string NodeName)
{
//读取xml文件:config.xml
//NodeName:需要读取的节点的名称
//返回值是节点内容
try
{
XmlTextReader reader = new XmlTextReader(System.Web.HttpContext.Current.Server.MapPath("config.xml"));
reader.WhitespaceHandling = WhitespaceHandling.None;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);
reader.Close();
XmlNode xnod = xmlDoc.DocumentElement;
return xnod.SelectNodes(NodeName).Item(0).FirstChild.Value;
}
catch (Exception e)
{
return e.ToString();
}
}
#endregion
#region 写数据库
private void WriteSQLserver(string Userid,string ProtectedItem,string PresentationId,string RijnDaelKey,string Password,string CreateIP,string Succeed)
{
try
{
string strSQL="INSERT INTO createpasswordhistory(Userid,ProtectedItem,PresentationId,RijnDaelKey,Password,CreateTime,CreateIP,Succeed)"
+" VALUES "
+"('"+Userid+"','"+ProtectedItem+"','"+PresentationId+"','"+RijnDaelKey+"','"+Password+"','"+System.DateTime.Now.ToString()+"','"+CreateIP+"','"+Succeed+"')";
string MyConString=GetConfigInfo("ConnectionString");
System.Data.SqlClient.SqlConnection myConn = new System.Data.SqlClient.SqlConnection(MyConString);
myConn.Open();
System.Data.SqlClient.SqlCommand myCmd=new System.Data.SqlClient.SqlCommand(strSQL,myConn);
myCmd.ExecuteNonQuery();
myConn.Close();
myCmd.Dispose();
myConn.Dispose();
}
catch(Exception e)
{
Response.Write(e.ToString());
};
}
#endregion
#region 页面加载时处理
private void Page_Load(object sender, System.EventArgs e)
{
try
{
if (!IsPostBack)
{
bool Sign=false;//标志
string ClientIP=Page.Request.UserHostAddress.ToString();//客户端IP
string strLegalIP=GetConfigInfo("LegalIP");//取合法IP
//取参数名称
string Parameter_Userid_Name=GetConfigInfo("Parameter_Userid_Name");
string Parameter_ProtectedItem_Name=GetConfigInfo("Parameter_ProtectedItem_Name");
string Parameter_RijnDaelKey_Name=GetConfigInfo("Parameter_RijnDaelKey_Name");
//取参数值
string Userid=Request.QueryString[Parameter_Userid_Name].ToString().Trim();
string ProtectedItem=Request.QueryString[Parameter_ProtectedItem_Name].ToString().Trim();
string PresentationId=GetConfigInfo("PresentationId");
string RijnDaelKey=Request.QueryString[Parameter_RijnDaelKey_Name].ToString().Trim();
StringBuilder password =new StringBuilder(1024);//存贮wcpw.dll生成的字串
string Expression="\\w{4}-\\w{4}-\\w{4}-\\w{4}-\\w{4}-\\w{4}-\\w{4}-\\w{4}";
string[] LegelIPArray = strLegalIP.Split(new char[]{';'});
for (byte i=0;i<LegelIPArray.Length;i++)
{
if (ClientIP==LegelIPArray[i].ToString())
{
Sign=true;
continue;
}
}
if (Sign)//在指定的IP范围之内
{
GeneratePW(Userid,ProtectedItem,PresentationId,RijnDaelKey,password);
}
if (System.Text.RegularExpressions.Regex.IsMatch(password.ToString(),Expression))
{
//生成格式正确的字符串
WriteSQLserver(Userid,ProtectedItem,PresentationId,RijnDaelKey,password.ToString(),ClientIP,"YES");
}
else
{
//生成格式不正确的字符串
WriteSQLserver(Userid,ProtectedItem,PresentationId,RijnDaelKey,password.ToString(),ClientIP,"NO");
}
this.labPassWord.Text=password.ToString();
}
}
catch(Exception em)
{
Response.Write(em.ToString());
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -