今天話題如下:
驗證流程講述
數據庫准備
代碼編寫
驗證流程講述
我們首先假設一個場景:用戶現在已經打開了我們的首頁Default.aspx,但是有些資源只能是登錄用戶才可以看到的,那麼如果這個用戶想要查看這些資源,那麼他就要登錄。而且這個用戶已經有了一個帳號。(我們本篇主要的話題是身份驗證,至於創建用戶賬戶是怎麼創建的,我們不關心,方法很多,如直接一個數據庫插入就行了!)
我們現在就把我們的一些流程說下:
1.用戶登錄,在輸入框中輸入用戶名和密碼信息
2.點擊登錄按鈕後,到數據庫中查詢該用戶是否存在
3 如果存在,服務器端代碼就創建一個身份驗證的票據,保存在cookie中,然後發送到客戶端的浏覽器
4.用戶已經有了驗證的cookie,那麼就頁面就跳轉到用戶之前請求的頁面
數據庫准備
那麼下面我們就開始詳細講述:
首先,我們我們肯定要先得創建一個數據庫,我們就取名為Login表,創建一個用戶信息表,我們在在表中建立三個字段UserName,UserPassword,UserRole(大家可以創建更多字段,我這裡只是演示,大家可以擴展的). 至於表中的數據,大家自己隨便插入幾條!
代碼編寫
因為我們常常要驗證用戶,所以我們把驗證用戶的代碼寫成一個方法放在App_Code目錄下的Helpers.cs類中
代碼如下:
驗證代碼
public static bool ValidateUser(string username, string password)
{
SqlConnection con = new SqlConnection();
con.ConnectionString =
ConfigurationManager.ConnectionStrings[“MyConnectionString”].ConnectionString;
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = “Select Count(*) From Users Where Username=@Username and UserPassword=@Password”;
com.Parameters.AddWithValue(“@Username”, username);
com.Parameters.AddWithValue(“@Password”, password);
con.Open();
int cnt = (int)com.ExecuteScalar();
con.Close();
return (cnt > 0);
}