會員制,的確是每一個網站都需要的「基本功能」。寫法也很簡單。
有些網頁,必須是會員才能看得到。一般參觀者,看不見內容,必須先通過帳號、密碼的檢查......
這個問題,是我在各大討論區最常遇見的問題。
不是我藏私、不想回答。而是相關的步驟不好解釋清楚。請看本書 16.2.6節
初學者(尤其是沒接觸過ASP/PHP/JSP的人,直接學ASP.NET),可能更頭大。
要完成這功能,有些步驟:
第一,要會寫簡單的ADO.NET程式(以ASP.NET而言)。要有能力自己寫程式,存取資料庫。
第二,瞭解 Application / Session。(這就是一個大議題,但這些東西是網頁通用的,ASP/PHP/JSP都有!)
這兩個部份,要講清楚。我的天!可以寫一本書的兩三章。
偏偏在ASP.NET 2.0以後,因為新花樣太多了,寫新的功能都寫不完,所以這兩大部分在市面上的書就比較少見。
很多書的作者,都以「介紹新東西」為主。預設的讀者是「從ASP升級上來的」、「有經驗的人」。
ASP.NET 2.0起,新增加的Login控制項,是很好用。但用一陣子以後,想要擴充就會有點棘手。(畢竟不是自己寫的,是用現成的)
傳統 Session、搭配自己規劃的會員資料表,因為是自己打造的,其實很好用。
然而,第一次寫網頁程式,就是從ASP.NET 2.0或3.5版開始的人,如果市面上的中文書都不講這些了(Session/Application/Cookie)。那你要怎麼辦?
有些初學者就以為:寫書的作者們藏私,不願公開。......但,這真的是不得已!
廣告一下,因此我的新書「刻意」保留這一部份,因為我相信很多ASP.NET的初學者,沒學過這一部份。....
新書上市-- ASP.NET專題實務(文魁出版)
首先,ADO.NET。就是連結資料庫的四大步驟。我已經發表過幾篇文章了,各位可以參考一下:
接下來,Application與Session,很難三言兩語講清楚。請看本書 16.2.6節
一定要圖文並茂,初學者才會瞭解「Global.asax設定檔」、「Application是給整個網站共用、Session會鎖定單一瀏覽器」,然後我們再來介紹----會員登入、會員專屬網頁這些範例,讀者才會清楚。
不是我不講,是三言兩語講不完啊!一定要現場Demo,或是用幾個範例玩一下,才會枉然大悟!
====================================================
說穿了,很簡單。
當一個使用者登入時,我們檢查他的帳號、密碼。
ADO.NET撈會員資料庫,比對帳號密碼是否正確,請看本書14.1節。
以下是虛擬碼,僅供參考:
Dim Conn As SqlConnection("連結資料庫的連線字串")
Dim dr As SqlDataReader.....
Dim cmd as SqlCommand("Select * from 會員資料庫 where 帳號 =" & ....,Conn)
dr = cmd.ExecuteReader()
IF dr.HasRow() Then
Session("OK") = "OK" '--註:通過帳號與密碼的檢查,取得一個鑰匙(Session)
Else
Response.ReDirect("會員登入的網頁.aspx") '--註:沒通過,滾回去
End IF
而每一個「會員專屬的網頁」,在程式的第一行,只要寫上:
IF Session("OK") <> "OK" Then
Response.End '--註解,程式中斷!
End IF
很簡單,對吧!Session的部份 與 本文的完整範例,請看本書 16.2.6節。
但其中的觀念,要從頭來啊!不然的話,我程式碼給你,你也執行不起來、改不動。
透過 Session來作,這是一個老方法。ASP/ASP.NET/PHP/JSP的作法都一樣,共通性很強。
因為Application / Session是網頁程式設計的一個標準作法。
誰說老東西不好用呢? 老鞋子好穿,好朋友值得信賴,不是嗎?
當然,您要採用ASP.NET提供的 全新的Login控制項來做,也行得通。
2008/12/12 我寫了一個範例給大家參考,請看---- [習題]會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#2 範例篇)====================================================
我知道這篇文章的下場是什麼?
初學者會說:「很感謝你的介紹,但我還是不懂」
或是說:「能直接給我完整的程式碼嗎?我要C#的,不要VB的喔?你能幫我改寫嗎?」
我....我.....Orz............
還是從頭學起吧,學問無捷徑!
最後,

廣告一下我的新書.....
書本的優點,就是圖文並茂、篇幅夠長,可以講得詳細! 上面我提到的東西,我保證原汁原味講清楚,範例通通有!
上面的範例,還可以修改成----
- 只有會員才能下載某些檔案。
- 只有會員才能修改自己資料。
- 只有會員,才能留言。
- 會員忘記密碼,如何Mail給他?
...................................只要把基礎學好,要便出幾種花樣,都隨你了~
相關文章可以參考:
今日值班正妹,林志玲


...... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務
(文魁出版,VB版 P8187 / C#版P09027)
下集已經出版囉~~~ASP.NET專題實務II:範例應用與4.0新功能 
.............................................................................................................. 寄信給我 mis2000lab (at) 雅虎.com.台灣 ........