程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET安全問題--Forms驗證(後篇)--實戰篇

ASP.NET安全問題--Forms驗證(後篇)--實戰篇

編輯:關於ASP.NET

今天話題如下:

驗證流程講述

數據庫准備

代碼編寫

驗證流程講述

我們首先假設一個場景:用戶現在已經打開了我們的首頁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);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved