舉個(gè)例子今天是20080212
在瀘溪等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),瀘溪網(wǎng)站建設(shè)費(fèi)用合理。
那么在輸入的時(shí)候可以驗(yàn)證
If Val(Text1.Text) = (Year(Now) Format(Month(Now), "00") Format(Day(Now), "00")) * 2 Then
MsgBox "密碼正確"
Else
MsgBox "密碼錯(cuò)誤"
End If
這樣密碼就是日期乘2即為40160424
至于更困難的算法,你自己可以造這個(gè)形式寫
OK,這回可以了,剛才我的系統(tǒng)沒(méi)有VB
沒(méi)有測(cè)試,這回沒(méi)錯(cuò)了,看看
代碼如下:
/// summary
/// 連接到窗體:通過(guò)密碼保護(hù)信息找回密碼!
/// /summary
/// param name="sender"/param
/// param name="e"/param
private void lbl_mibao_Click(object sender, EventArgs e)
{
Getbackpwd getbackpwd = new Getbackpwd();
getbackpwd.Show();
}
/// summary
/// 當(dāng)該窗體加載時(shí)從xml文件中讀取用戶信息并加載到combox的Items中
/// /summary
/// param name="sender"/param
/// param name="e"/param
private void Addresslist_Load(object sender, EventArgs e)
{
XmlTextReader reader = new XmlTextReader(@"E:\面向?qū)ο?-C#練習(xí)\通訊錄\address list\address list\user.xml");
while (reader.Read())
{
//if (reader.LocalName.Equals("Name") || reader.LocalName.Equals("Number"))
if (reader.LocalName.Equals("username"))
{
this.cmbUserName.Items.Add(reader.ReadString());
}
//if (reader.LocalName.Equals("Number"))
//{
// this.label2.Text += reader.ReadString() + "\n";\
//}
}
reader.Close();
}
/// summary
/// 保存用戶名到user.xml
/// /summary
//在listcontol上更改SelectedValue時(shí)執(zhí)行從數(shù)據(jù)庫(kù)讀取密碼的事件
private void cmbUserName_SelectedValueChanged(object sender, EventArgs e)
{
string username = cmbUserName.Text.Trim();
string sql = string.Format("select pwd from Admin where Username='{0}'", username);
try
{
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
while (dataReader.Read())
{
txtpwd.Text = (string)dataReader["pwd"];
checkBoxpwd.Checked = true;
}
}
catch
{
MessageBox.Show("數(shù)據(jù)庫(kù)操作出錯(cuò)!");
}
finally
{
DBHelper.connection.Close();
}
}
/// summary
/// 記住密碼操作
/// /summary
/// param name="sender"/param
/// param name="e"/param
private void checkBoxpwd_Enter(object sender, EventArgs e)
{
bool check = true;
check = checkinput(cmbUserName.Text.Trim());
if ((string)cmbUserName.Text.Trim() == "")
{
MessageBox.Show("請(qǐng)輸入用戶名", "輸入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
cmbUserName.Focus();
}
else
{
if (txtpwd.Text.Trim() == "")
{
MessageBox.Show("請(qǐng)輸入密碼", "輸入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtpwd.Focus();
}
else
{
bool isValidUser = false; // 標(biāo)識(shí)是否為合法用戶
string message = ""; // 如果登錄失敗,顯示的消息提示
// 如果驗(yàn)證通過(guò),就顯示相應(yīng)的用戶窗體,并將當(dāng)前窗體設(shè)為不可見
if (ValidateInput())
{
// 調(diào)用用戶驗(yàn)證方法
isValidUser = ValidateUser(cmbUserName.Text, txtpwd.Text, ref message);
// 如果是合法用戶,顯示相應(yīng)的窗體
if (isValidUser)
{
if (check == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"E:\面向?qū)ο?-C#練習(xí)\通訊錄\address list\address list\user.xml");//(@"E:\面向?qū)ο?-C#練習(xí)\通訊錄\address list\address list\user.xml");
XmlElement node = doc.CreateElement("user");
XmlNode xnode = (XmlNode)doc.CreateElement("username");
xnode.InnerText = cmbUserName.Text.Trim();
node.AppendChild(xnode);
doc.DocumentElement.InsertAfter(node, doc.DocumentElement.LastChild);
doc.Save(@"E:\面向?qū)ο?-C#練習(xí)\通訊錄\address list\address list\user.xml");
//doc.Load (@"E:\面向?qū)ο?-C#練習(xí)\通訊錄\address list\address list\user.xml");
}
}
// 如果登錄失敗,顯示相應(yīng)的消息
else
{
MessageBox.Show(message, "記住密碼失??!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
}
/// summary
/// 驗(yàn)證當(dāng)前combox中內(nèi)容是否已經(jīng)存在于xml文件中
/// /summary
/// param name="text"/param
/// returns/returns
private bool checkinput(string text)
{
int count;
bool c = true;
for (count = 0; count cmbUserName.Items.Count;count ++ )
{
if (text ==(string )cmbUserName .Items [count])
{
c=false;
}
}
return c;
}
xml文件內(nèi)容如下:?xml version="1.0" encoding="utf-8"?
person
user
constr=?"Driver={Microsoft?Access?Driver?(*.mdb)};Dbq=c:\aaa.mdb;Uid=admin;Pwd=**********;"?
'其中?**********就是你數(shù)據(jù)庫(kù)的密碼
在FormLoad事件里,寫如下代碼:
If MsgBox("是否打開程序?", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then
End
End If
大概方法是這樣,要想加密碼的話,將MsgBox()換成你自己寫的對(duì)話框。
如果還嫌不夠具體的話,你這點(diǎn)兒分就不夠。。。
首先在項(xiàng)目的VB.NET界面,使用菜單【項(xiàng)目】--【添加引用】--【COM】
選擇 ?Microsoft ADO Ext. 2.x for DDL and Security
然后單擊【確定】,完成引用。
完整代碼如下:
Imports?ADOX
Public?Class?Form1
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
'創(chuàng)建空的access數(shù)據(jù)庫(kù)文件--數(shù)據(jù)庫(kù)文件.mdb,密碼為123
Dim?Mycat?As?Catalog?=?New?Catalog()
Mycat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet?OLEDB:Engine?Type=5;Data?Source=?數(shù)據(jù)庫(kù)文件.mdb;Jet?OLEDB:Database?Password=123")
'以下代碼創(chuàng)建一個(gè)名為“實(shí)驗(yàn)數(shù)據(jù)表”
Dim?MyTable?As?ADOX.Table?=?New?ADOX.Table?????????'定義新表
MyTable.Name?=?"實(shí)驗(yàn)數(shù)據(jù)表"????'表命名
'給表“實(shí)驗(yàn)數(shù)據(jù)表”?創(chuàng)建一個(gè)字符串字段,字段名“姓名”
MyTable.Columns.Append("姓名",?,?ADOX.DataTypeEnum.adWChar)
'給表“實(shí)驗(yàn)數(shù)據(jù)表”?創(chuàng)建一個(gè)整數(shù)字段,字段名“學(xué)號(hào)”
MyTable.Columns.Append("學(xué)號(hào)",?ADOX.DataTypeEnum.adInteger)????'追加一個(gè)數(shù)字型字段
'給字段“學(xué)號(hào)”創(chuàng)建一個(gè)主鍵“PimaryKey_Field”????????
MyTable.Keys.Append("學(xué)號(hào)",?ADOX.KeyTypeEnum.adKeyPrimary,?"學(xué)號(hào)")
Mycat.Tables.Append(MyTable)?'把所有的新字段追加到表
MyTable?=?Nothing
Mycat?=?Nothing
End?Sub
End?Class
你說(shuō)得真能把人搞暈。
你總能得到用戶名吧,然后拿用戶名和舊口令再去調(diào)用一下驗(yàn)證口令哪塊代碼看成功沒(méi)有不就好了。
登陸以后應(yīng)該把用戶信息放到Session里面。然后就可以得到了啊。實(shí)在不會(huì)至少可以使用隱藏Text,把用戶名輸出到用戶的頁(yè)面上,提交的時(shí)候一并帶上來(lái)就好了。