這是備份,原文請看我的網站:[習題]會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#2 範例篇)

http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/02/member_control_login_1202.aspx

 

 

 

之前提過會員登入、權限控管的問題,請參考本文--- FAQ--會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?  基本的觀念,都在這篇文章中講過了。

在我的書上,第十六章(狀態管理)也有相關範例。詳見本書 16-2-516-2-6這兩節的範例。

 

因為有讀者來問,我順手寫一個簡單範例來作。

 

我是採用最傳統的作法,以 Session來作。

這個作法雖然傳統,但是「千年傳統,全新感受」!


圖片來源:cape7.pixnet.net/blog/post/18929149  電影 海角七號官方網站

 

這個作法有什麼好處呢?

1.  簡單好用,不會受限於別人寫好的功能(例如:ASP.NET提供的 Login控制項與相關的 Table,很多人不知道怎麼去修改他)

2.  這個方法,不管是ASP、JSP、PHP也都可以用,是網頁程式裡面一個「通用」的好範例。

     你要學一個「只有ASP.NET才能用的方法?」,還是所有網頁程式都能用的方法?

 

我的書上沒有提到 Login控制項,也敢拿出來賣。    我相信我有我的招數可以做出相同的東西。

而且可以讓讀者「用得更久」、「用得更靈活」

===================================================================

首先,要先設計一個會員專屬的資料表(Table)

 

欄位名稱 資料格式 備      註
id int 會員編號(自動編號)
name nvarchar(50) 帳號
password nvarchar(50) 密碼
rank nvarchar(50) 權限。
我以數字來當作權限,數字越大,權限越高。
email nvarchar(50) 忘記密碼,可以透過E-Mail通知他

 

第一個畫面(User_Login.aspx),是輸入帳號、密碼。

這個畫面的功能,我想每個人都會吧~

如果你連這個畫面都不會作,那應該買本書從頭學起。

這些範例都是我送給讀者,作為「課後補充」、「售後服務」,不是寫給毫無基礎的人看的。

這些沒講到的部份,書裡通通有!

畫面上有兩個功能,

第一,登入以後,會比對資料庫。帳號、密碼都沒有錯誤。    便會發給一個Session,作為通關鑰匙!

            20分鐘內,這把通關鑰匙都會一路順暢。沒有這把鑰匙的話,就算你知道網址URL也進不去!

            這一部份,就是書本內 16-2-516-2-6這兩節的範例。 請您務必把書裡面的基礎讀熟了

            啊~           學網頁程式,沒聽過 Application、Session、Cookie.....那不用學了。

           這個範例,我用了三個 Session。一個是 Session("Login"),用來作為通關的鑰匙(會員區裡面的每個網頁,defense.aspx都會檢查它)。

           另外兩個分別是:Session("U_Name")記錄會員姓名。 Session("u_Rank")記錄會員的「權限等級」。

 

第二,忘記密碼的話,我會透過 E-Mail告訴你。這部份算是新增的功能,書上來不及講

          是採用 System.Net.Mail 命名空間的用法,

          您也可以參考微軟的範例,照抄就能用囉~ http://msdn.microsoft.com/zh-tw/library/system.net.mail.mailmessage(VS.80).aspx

 

在會員登入的畫面,我寫了幾行程式,防範 SQL Injection的攻擊。

只是防堵對方輸入「--」SQL指令的註解符號,與1=1這種模稜兩可的陳述句而已。  寫得不好,請見諒。

========================================================================================

 

接下來,就進入「會員區(User_List.aspx)」。

因為有 Session的保護,就算你直接打網址URL,也會被我阻擋下來。

這部份的原因,就是書本裡面 defense.aspx這個小程式在幫忙。  原理很簡單,16-2節通通在講這些內容。

這支程式的HTML碼,最上面記得加入 defense.aspx

唯一的重點,就是 defense.aspx這個小程式,在防堵外人直接 Kry in網址(URL),直接闖入會員專屬網頁。

 

畫面的執行成果如下:

上面這個程式,完全沒有寫後置程式碼。

因為都是靠畫面上的元件,設定一下就能完成囉。

GridView的花樣很多很多,為了有足夠的範例來給大家練習,我一寫就是五大章,將近250頁。

 

GridView的欄位,設定上有一些重點(如下圖)

「文章 id編號」,一點選就會連到下一個網頁(User_Edit.aspx)去作修改。

 這個設定,請看本書 9-1節,有一個很類似的範例。

=============================================================================

第三個畫面,修改文章內容(User_Edit.aspx)。

    1.  你必須權限夠大,例如: Rank =3,是站長等級,才能修改所有文章。

    2. 你必須是這篇文章的作者,才能修改他的內容。  (這部份我寫得不好啦,請見諒~)

除此之外,都會出現「權限不足」的警告訊息,一腳把你踢開!

 

當然,本程式的最上方,仍要加入 defense.aspx來防堵

 

FormView + SqlDataSource的部份,有一個設定重點

因為上一支程式,是透過「超連結」過來的,所以在 SqlDataSource的設定畫面中,「Where子句」必須設定如下:

 

第三支程式 (User_Edit.aspx)的執行成果如下:

這裡我使用 FormView來修改文章內容,只要根基打得穩,熟悉 GridView的「樣版」,

FormView根本不用學,自然就會作。   還很精通勒!

      因為 FormView我們只用來編輯資料,所以預設的畫面,請設定為「Edit 」Mode(如下圖)

      用不到的樣版,例如:ItemTemplate可以自己刪除,因為不會用到資料展示與呈現的樣版

      SqlDataSource自動產生,但用不到的指令,例如:資料新增,InsertCommand 也可以刪除。

 

 

 

 

 

 

 

 

GridView的花樣很多很多,為了有足夠的範例來給大家練習,我一寫就是五大章,將近250頁。

原因就在此:與其什麼控制項,都學一點點皮毛而已,不如全力精通一樣!

                          然後功力倍增以後,就能舉一返三!

請看我這篇文章:[入門]以初學者來看,ASP.NET的GridView可以學到什麼?

 

 

===============================================================================

再一次強調:

這些範例、習題,都是給本書的讀者作為課後補充。 

有些也是讀者寫信來問,我用範例重新說明一次。

不是給「毫無基礎」的初學者看的。 

如果您真的毫無基礎,又不願意學,就算程式送給你,你都不會改、裝不上去。

 

No Pain, No Gain......現在景氣差成這樣,工作拼命裁員。我相信寫程式的人最不受影響!

就算沒工作,自己在家接案子、寫書、去補習班教學.....,都能有一線生機

資訊系統的外包、小包,真的是永遠作不完的案子!

 

 

 

今天,我認真花一兩個月,好好看完一本書、上完一門課,自己回家後,一定要認真練習幾次

學到的東西很難被取代!

將來,別人(競爭者)要進入這個領域,是不是也要受同樣的苦呢?     這種進入障礙,就是我們最大的保障!

 

如果範例湊得夠多,我會推出一本「ASP.NET的範例集」,[出書計畫] ASP.NET範例集、問題集

 

 

本文範例(VB語法),由此下載 -----  會員登入與權限.rar

      defense.aspx請參閱本書內容,請自己稍作修改。

      這三支程式,後置程式碼都很短。我相信用功的讀者,有把書本內容看過,就會看得懂。

      我刻意分成三個程式來作,在流程上,可以區隔得比較明顯。

 

這個範例很淺,我是順手寫出來的,如果有什麼不周到的地方,請見諒!

最重要的是告訴讀者:這一套流程、防堵措施,大概是這樣使用的。這才是重點!程式碼根本沒什麼~

 

這三支程式會用到書本的章節如下:

  • GridView的部份(Ch8 / Ch9)、
  • ADO.NET的部份(Ch14的14-1節)、
  • 狀態管理(Session)的部份(Ch16的16-2節)。

 

 

好久沒有貼今日值班正妹了................................

 

 

 

 

 

 

 

 

 

安、海瑟威(演過「穿著Prada的惡魔」、「斷背山」是好萊塢最熱門的甜姐兒。人很瘦而且身材超辣)

  

.....................................................................................................................................................................................
ASP.NET專題實務ASP.NET專題實務(文魁出版 / P8187)

2008/八月份 天瓏書局排行榜前十名

.............................................................................................................. 寄信給我    mis2000lab (at) 雅虎.com.台灣 ........

arrow
arrow
    全站熱搜

    MIS2000 Lab 發表在 痞客邦 留言(0) 人氣()