ASP.NET 的出現(xiàn)給web 程序設(shè)計(jì)帶來了一場(chǎng)革命,它具有windows 那種即見即所得的快捷,高度的封裝給程序設(shè)計(jì)降低了難度,豐富的界面控件提高了軟件設(shè)計(jì)的效率因而也縮短了開發(fā)周期,代碼隱藏和分離技術(shù)使的程序的可讀性和可維護(hù)性大大提高,加之ADO.NET數(shù)據(jù)庫訪問技術(shù),將windows的程序設(shè)計(jì)思想完全容入到web設(shè)計(jì)之中。下面是我使用其構(gòu)建一個(gè)系統(tǒng)整體構(gòu)架的簡(jiǎn)單練習(xí):
1、登錄頁面:
首先是一個(gè)登錄用戶的驗(yàn)證,接著是一系統(tǒng)公告和一個(gè)跑馬燈的公告提示,最后是一些連接及版權(quán)說明。前臺(tái)完全用WebControls 來作,后臺(tái)使用C#編碼來實(shí)現(xiàn)用戶的登錄用戶名及密碼和數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)進(jìn)行比較驗(yàn)證,正確則登錄并且將用戶的userid和username 賦給全局變量Session["userid"]和Session["username"]以便在后面的頁面上驗(yàn)證Session來判斷用戶是否一登錄,將頁面定向到Index.aspx,若驗(yàn)證用戶名或密碼失敗則給出響應(yīng)的提示信息,實(shí)現(xiàn)代碼如下:
private void imgbtnLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
? {
? //判斷用戶名、密碼是否錄入
? ?string username = txtUserName .Text .Trim ();
? ?string userpasw = txtPassword .Text .Trim ();
? ?string SqlUser????= "select * from Users??where UserID = '" + username + "'";
? ?DataSet UserDtset = new DataSet();
? ?UserDtset?????????= login.GetDataSet (SqlUser);???
? ?//判斷用戶名是否存在
? ?int SqlCount??????= UserDtset.Tables[0].Rows.Count;
? ?if (SqlCount == 0)
? ?{
? ? ShowMessage("用戶名不存在,請(qǐng)重新錄入!",Page);
? ? return;?????
? ?}
? ?//判斷密碼是否正確
? ?string passwd = UserDtset.Tables[0].Rows[0]["password"].ToString();
? ?if (passwd != userpasw)
? ?{
? ? ShowMessage("密碼不正確,請(qǐng)重新錄入!",Page);
? ? return;
? ?}
? ?//賦給全局變量值
? ?Session["UserID"]=UserDtset .Tables [0].Rows [0]["UserID"].ToString ();
? ?Session ["UserName"]=UserDtset .Tables [0].Rows [0]["Name"].ToString ();
? ?Response .Redirect ("index.aspx");
}
//提示信息
? private void ShowMessage(string MsgText,System.Web.UI.Page PageObject)
? {???
? ?StringBuilder SList = new StringBuilder();
? ?SList.Append("<script language =javascript>
");
? ?SList.Append("alert('"+MsgText +"');
");
? ?SList.Append("</script>");
? ?PageObject.RegisterStartupScript("",SList.ToString());???????
? }
login.aspx中的其它部分 如:公告使用控件DataGrid將數(shù)據(jù)庫中的數(shù)據(jù)讀出來即可。
2、Index.aspx頁面是程序的主頁面 主要包括三部分 頂部一個(gè)Banner 、左邊是一個(gè)TreeVew、右邊是用于顯示的主操作區(qū),左邊的Treeview 主要用于導(dǎo)航,這個(gè)一面主要使用的Fram 將幾個(gè)頁面拼接起來形成一個(gè)頁面 后臺(tái)代碼:
private void Page_Load(object sender, System.EventArgs e)
? {
? ?if(!IsPostBack)
? ?{
? ? if(Session ["UserName"]==null )//斷Session若為空則跳轉(zhuǎn)到登錄頁面
? ? ? ?Response .Redirect ("Check.aspx");
? ?}
? }
這里使用了一個(gè)驗(yàn)證頁面Check.aspx 若用戶沒有登錄或者是Session超時(shí)都會(huì)轉(zhuǎn)到此頁面后三秒鐘后轉(zhuǎn)到登錄頁面,次頁面有有提示信息:沒有登錄或者登錄超時(shí)請(qǐng)重新登錄;
3、我的需求和我提出的需求頁面 主要是由主細(xì)目組成 都可以使用控件綁定數(shù)據(jù)庫來完成,比較簡(jiǎn)單不再詳述。
本文摘自 :https://blog.51cto.com/u