將用戶名,密碼,用戶類型存在數據庫中,登陸時比較輸入的值是否與數據庫相同即可。
創新互聯建站專業為企業提供平涼網站建設、平涼做網站、平涼網站設計、平涼網站制作等企業網站建設、網頁設計與制作、平涼企業網站模板建站服務,10余年平涼做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
基礎類庫:
Imports Microsoft.VisualBasic
'執行Access語句的封裝類。
Public Class AccessExecClass
Private conn As Data.OleDb.OleDbConnection
Private cmd As Data.OleDb.OleDbCommand
'創建類對象,并連接到數據庫。
Sub New()
If openAccess Then
Else
msgbox("open Access Fail.")
End If
End Sub
'創建類對象,并連接到數據庫。 '輸入帶目錄名稱的數據庫文件名稱:dbFileName,例如:“\DB數據庫\企業數據庫.aspx”
Sub New(ByVal dbFileName As String)
If OpenAccess(dbFileName) Then
Else
MsgBox("open Access Fail.")
End If
End Sub
Function OpenAccess() As Boolean
OpenAccess = False
'檢驗用戶的帳號密碼是否正確
Dim provider As String '= ConfigurationManager.ConnectionStrings("ConnectionString").ProviderName
provider = "Provider=Microsoft.Jet.OLEDB.4.0"
Dim database As String
database = "Data Source=" System.Web.HttpContext.Current.Server.MapPath("\數據庫.aspx") ";Persist Security Info=true"
conn = New Data.OleDb.OleDbConnection(provider ";" database)
conn.Open()
OpenAccess = True
End Function
Function OpenAccess(ByVal dbFileName As String) As Boolean
OpenAccess = False
'檢驗用戶的帳號密碼是否正確
Dim provider As String '= ConfigurationManager.ConnectionStrings("ConnectionString").ProviderName
provider = "Provider=Microsoft.Jet.OLEDB.4.0"
Dim database As String
database = "Data Source=" System.Web.HttpContext.Current.Server.MapPath(dbFileName) ";Persist Security Info=true"
conn = New Data.OleDb.OleDbConnection(provider ";" database)
conn.Open()
OpenAccess = True
End Function
'關閉數據庫。
Sub CloseAccess()
cmd = Nothing
conn.Close()
End Sub
'執行一條Access語句,執行成功就返回True。
Function ExecAccessString(ByVal AccessStr As String) As Boolean
cmd = New Data.OleDb.OleDbCommand(AccessStr, conn)
cmd.ExecuteNonQuery()
'Dim aa As Data.OleDb.OleDbDataReader = cmd.ExecuteReader
ExecAccessString = True
End Function
'返回讀取到的數據,注意是用地址傳遞方式返回
Sub ExecAccessString(ByVal AccessStr As String, ByRef AccessReader As Data.OleDb.OleDbDataReader)
cmd = New Data.OleDb.OleDbCommand(AccessStr, conn)
cmd.ExecuteNonQuery()
AccessReader = cmd.ExecuteReader
End Sub
End Class
登陸代碼:
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Dim wl As New WebLog '用戶登錄記錄開始,僅對購買了Log 功能的用戶,才開放此功能,否則不會實際記錄Log
Dim sql As String
Dim aDB As New AccessExecClass
Dim mypw As String
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
'沒有輸入時,不能進行登陸
If TextBox1.Text = "" Then
Label1.Visible = True
Return
End If
If TextBox2.Text = "" Then
Label2.Visible = True
Return
End If
If TextBox3.Text = "" Then
Label3.Visible = True
Return
End If
If TextBox3.Text = TextBox4.Text Then
Else
Label3.Visible = True
Return
End If
Dim iRnd As Integer = Rnd(10) * 100
TextBox3.Text = ""
TextBox4.Text = iRnd.ToString
'Dim iRnd As Integer = Rnd(10) * 100
'注意:此處需要加入防止注入分析,包含'的肯定是特別語句,講拒絕.
If TextBox1.Text.IndexOf("'") 0 Or TextBox2.Text.IndexOf("'") 0 Then
TextBox1.Text = "不能輸入非法字符,將強制清空"
TextBox2.Text = ""
Else
Dim pw As New MD5EnCode(13, 19) ' '2次加密
sql = "select 權限組號,ID , 密碼 from 編輯人數據 where 編輯姓名='" + TextBox1.Text + "'"
Dim aa As Data.OleDb.OleDbDataReader '= cmd.ExecuteReader
aDB.ExecAccessString(sql, aa)
If aa.Read() Then
'密碼正確()
'sql = aa(2)'需要特別注意:只能單向解密,不能直接轉換
mypw = pw.simDeCode(pw.simDeCode(aa(2)))
If TextBox2.Text = mypw Then
Session("LOGIN_Name") = TextBox1.Text '設置登錄后的用戶名稱
Session("Login_Group") = aa(0) 'cmd.ExecuteScalar '設置登錄后的權限級別
Session("Login_ID") = aa(1) 'cmd.ToString
'cmd = Nothing
'conn.Close()
Call wl.NewLog("登錄", "管理員成功登錄")
Response.Redirect("../WebManages/Default.ASPX")
Else
'密碼錯誤()
sql = sql.Replace("'", "【單引號】")
sql = sql.Replace(",", "【逗號】")
Call wl.NewLog("登錄", "管理員失敗的登錄", TextBox1.Text, sql.Replace("""", "【雙引號】"), "")
Label4.Visible = True
End If
Else
'密碼錯誤()
sql = sql.Replace("'", "【單引號】")
sql = sql.Replace(",", "【逗號】")
Call wl.NewLog("登錄", "管理員失敗的登錄", TextBox1.Text, sql.Replace("""", "【雙引號】"), "")
Label4.Visible = True
End If
End If
End Sub
您可以調用Me.Hide()方法隱藏Login窗體。
另外,如果您使用新建工程后的那個默認窗體作為Login窗體,那么您只能隱藏這個窗體或修改程序的啟動對象。因為VB.net默認將創建工程時的那個默認窗體作為程序的主窗體,應用程序的主消息循環就建立在這個窗體上,如果您關閉這個窗體,那么所有的消息泵都會停止,應用程序就會退出。
我比較推薦您將Main窗體設為應用程序的主窗體,這樣可以減小資源的占用,當Login完成后就可以釋放Login窗體了。
另外,vb.net中的me變量相當于C語言中的this指針,它指向當前類。
推薦一個網站,這個網站有很多的教程,而且基本都是附部分代碼,可能有一些對您有用的信息。
一般登陸網站時候首先要打開一個網頁對吧?
那首先要 GET 一個網址。GetResponse后,得到的流就是這個頁面的源碼。
源碼里肯定會包含這個驗證碼的提問段(可能是個圖片的網址,也可能是個 5+5=? 之類的字符串之類的),可以分析一下這段代碼出現的位置,讓程序自動尋找。找到這個圖片的網址,把這個圖片 GET 下來,然后,就是orc識別或你人工識別咯。。。
代碼如下:
/// summary
/// 連接到窗體:通過密碼保護信息找回密碼!
/// /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
/// 當該窗體加載時從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:\面向對象--C#練習\通訊錄\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時執行從數據庫讀取密碼的事件
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("數據庫操作出錯!");
}
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("請輸入用戶名", "輸入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
cmbUserName.Focus();
}
else
{
if (txtpwd.Text.Trim() == "")
{
MessageBox.Show("請輸入密碼", "輸入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtpwd.Focus();
}
else
{
bool isValidUser = false; // 標識是否為合法用戶
string message = ""; // 如果登錄失敗,顯示的消息提示
// 如果驗證通過,就顯示相應的用戶窗體,并將當前窗體設為不可見
if (ValidateInput())
{
// 調用用戶驗證方法
isValidUser = ValidateUser(cmbUserName.Text, txtpwd.Text, ref message);
// 如果是合法用戶,顯示相應的窗體
if (isValidUser)
{
if (check == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"E:\面向對象--C#練習\通訊錄\address list\address list\user.xml");//(@"E:\面向對象--C#練習\通訊錄\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:\面向對象--C#練習\通訊錄\address list\address list\user.xml");
//doc.Load (@"E:\面向對象--C#練習\通訊錄\address list\address list\user.xml");
}
}
// 如果登錄失敗,顯示相應的消息
else
{
MessageBox.Show(message, "記住密碼失敗!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
}
/// summary
/// 驗證當前combox中內容是否已經存在于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文件內容如下:?xml version="1.0" encoding="utf-8"?
person
user
網頁題目:vb.net登錄驗證 net 登錄驗證
文章起源:http://m.kartarina.com/article40/hgspeo.html
成都網站建設公司_創新互聯,為您提供做網站、網站設計公司、網站排名、外貿建站、品牌網站建設、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯