之前提過會員登入、權限控管的問題,請參考本文--- 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")記錄會員的「權限等級」。

 

註解:Session的寫法可以改用OOP的屬性來做,更簡潔有力。

請看Allen Kuo文章:http://www.allenkuo.com/EBook5/view.aspx?a=1&TreeNodeID=123&id=978

 

 

第二,忘記密碼的話,我會透過 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節)。

 

............................................................................................................................................................................................

2009/1/14補充

把上面的會員登入功能,改成Web Service版本,請看:Web Service入門 #6,統一管理帳號、密碼的登入

 

............................................................................................................................................................................................

2011/9/19補充

會員登入、會員專屬網頁、會員修改私人資料,怎麼寫?(#3)使用者登入後(新增、刪除、編輯)各種動作的權限

http://www.dotblogs.com.tw/mis2000lab/archive/2011/09/19/session_login_user_right_20110919.aspx

 

................................................................................................................................................

如果您不想學傳統的 Session來管理,ASP.NET 2.0起,也有自己的會員登入機制

請看這篇文章:

會員登入 與 FormsAuthentication (Web.Config裡面的 authentication mode="Forms")

................................................................................................................................................

 

 

 

 

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

 

 

 

 

 

 

 

 

 

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


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

 

 

......... 寫信給我,mis2000lab (at) yahoo.com.台灣 .....................................................................................

................   facebook社團   https://www.facebook.com/mis2000lab   ............................

................   Google+   https://plus.google.com/100202398389206570368/posts ..............

................  YouTube (ASP.NET) 線上教學影片  MIS2000 Lab.親自教學 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/videos

 


網頁上的補充範例(售後服務)不一定能立即提供 VB / C#語法 (看時間夠不夠寫,請不要跟我們要)。

書本上面的範例,一定有 VB / C#雙語法給您學習。          請看我們的「售後服務」範圍(嚴格認定)

 

防範SQL Injection / XSS攻擊,請看:ASP.NET安全寫作    資料來源 -- TWISC@NTUST網路應用安全知識庫

......................................................................................................................................................


 

  微軟MVP獎的得主、講師,

                        給您更便宜的價格,更專業的實戰訓練。

......................................................................................................................................................

 

(1). 我是初學者、要從頭學起、學習 [各種]控制項,瞭解ASP.NET生命週期與變革,請上這一班:

                                     *** 班班額滿,切莫遲疑!****

         


          MIS2000 Lab.  線上教學影片(YouTube)
         

 

(2). Muki Wu的 Responsive Web Design(響應式網頁)設計講座。一日課程。

          

(3). Amos + Muki 雙講師聯手出擊!前端設計 36 hr 實戰課程 (HTML + CSS + jQuery)

          

 

 

(4). KK Bruce 陳傳興 -- ASP.NET MVC 5 七週實戰

          

 

(5). 我是 [現役]的 ASP/ PHP / JSP設計師,我「不想」學精靈與大型控制項。您適合這一班

         

 

(6). Will 保哥,大名鼎鼎的微軟研討會講師。ASP.NET MVC -- 六週實戰,保證過癮!

         

 

(7). Allen Kuo -- ASP.NET「物件導向(OOP)」班 -- 打通任督二脈,晉升高手行列

         

 

(8). [高雄] 高雄第一科大 -- ASP.NET五週研習班

         

 

 

 

............................. 寫信給我,mis2000lab (at) yahoo.com.台灣.........................................................

專為學校、補習班撰寫的ASP.NET教科書

      

 

 

專為業界工程師撰寫的ASP.NET參考書(上下兩集,厚達三千頁)

  C#

 VB

 ASP.NET 4.5 專題實務(松崗出版)

    

     榮獲 PChome  電腦類  2011 / 2012年度 暢銷書

   (上集)上市半年熱銷 3,500本 再版

上 / 下兩集合購。優惠價1,250元(免郵資,比PChome便宜)

  

C# + VB 雙語法

上集( .NET 4.5版)全新改寫。範例增加270%。

上/下兩集 紙本印刷 超過 2,000頁,加上 PDF電子書 則逼近 3,000頁

堪稱國內 [最詳盡]的 ASP.NET 範例、實戰教學。

 

下集  為   VB、C#  「雙語法」版本,物超所值!上一版熱銷七刷

南無普光佛  南無普明佛  南無普淨佛  南無多摩羅跋栴檀香佛  南無栴檀光佛  南無摩尼幢佛  南無歡喜藏摩尼寶積佛  南無一切世間樂見上大精進佛   南無摩尼幢燈光佛  南無慧炬照佛  南無海德光明佛   南無金剛牢強普散金光佛  南無大強精進勇猛佛  南無大悲光佛   南無慈力王佛  南無慈藏佛  南無栴檀窟莊嚴勝佛  南無賢善首佛   南無善意佛  南無廣莊嚴王佛  南無金華光佛  南無寶蓋照空自在力王佛  南無虛空寶華光佛  南無琉璃莊嚴王佛  南無普現色身光佛  南無不動智光佛  南無降伏眾魔王佛  南無才光明佛  南無智慧勝佛  南無彌勒仙光佛  南無善寂月音妙尊智王佛  南無世淨光佛  南無龍種上尊王佛  南無日月光佛  南無日月珠光佛  南無慧幢勝王佛  南無師子吼自在力王佛  南無妙音勝佛  南無常光幢佛  南無觀世燈佛  南無慧威燈王佛  南無法勝王佛  南無須彌光佛  南無須曼那華光佛  南無優曇鉢羅華殊勝王佛  南無大慧力王佛  南無阿閦毗歡喜光佛  南無無量音聲王佛  南無才光佛   南無金海光佛  南無山海慧自在通王佛  南無大通光佛  南無一切法常滿王佛  南無釋迦牟尼佛   南無金剛不壞佛  南無寶光佛  南無龍尊王佛  南無精進軍佛  南無精進喜佛  南無寶火佛  南無寶月光佛  南無現無愚佛  南無寶月佛  南無無垢佛  南無離垢佛   南無勇施佛  南無清淨佛  南無清淨施佛  南無娑留那佛  南無水天佛  南無堅德佛  南無栴檀功德佛  南無無量掬光佛  南無光德佛  南無無憂德佛  南無那羅延佛  南無功德華佛  南無蓮華光遊戲神通佛  南無財功德佛  南無德念佛  南無善名稱功德佛  南無紅燄帝幢王佛  南無善遊步功德佛  南無鬪戰勝佛   南無善遊步佛  南無周匝莊嚴功德佛  南無寶華遊步佛  南無寶蓮華善住娑羅樹王佛   南無法界藏身阿彌陀佛