国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ASP.NET中的Forms身份驗證的研究

2012-08-01 08:46義艷剛
關鍵詞:身份驗證應用程序頁面

義艷剛

(武漢船舶職業(yè)技術學院實訓中心,湖北武漢 430050)

在Visual Studio.NET中開發(fā)Web應用程序項目時,在默認情況下,任何人都可以訪問這些Web頁面。如果想拒絕某些不受歡迎的人訪問頁面,這就需要對訪問頁面的用戶進行“身份驗證”。

ASP.NET中支持三種類型的身份驗證:Windows身份驗證,它結合Internet信息服務(IIS)身份驗證,只允許某些 Windows賬戶訪問頁面;Passport身份驗證,它是由 Microsoft提供的集中身份驗證服務,用于為其成員站點提供單一登錄和核心配置服務;Forms身份驗證,它是使用自定義表單來實現(xiàn)身份驗證,這是最流行的身份驗證方法。

當用戶訪問使用Forms身份驗證的頁面時,他們會被重新定向到一個登錄頁面。在這個頁面,用戶可以提供用戶名和密碼,然后檢查其身份驗證信息是否有效,并據(jù)此授權或拒絕訪問頁面。本文主要對ASP.NET的Forms身份驗證進行討論。

1 使用Web.config存儲用戶的Fo rms身份驗證

Web.config文件是一個XML文本文件,它用來儲存ASP.NET Web應用程序的配置信息。在Visual Studio.NET中新建一個Web應用程序后,默認情況下會在站點的根目錄下自動創(chuàng)建一個默認的Web.config文件,包括默認的配置設置,所有的子目錄都繼承它的配置設置。通過對Web.config文件進行重寫或修改,可以設置ASP.NET Web應用程序的Forms身份驗證方式,設置步驟如下:

(1)在項目解決方案中打開 Web.config文件,編輯<authentication>元素,設置應用程序的身份驗證方式為“Forms”,并為應用程序提供一組有效的用戶,如下所示。

(2)在 Web.config文件中,從<authorization>元素中刪除<allow users=”*”/>行。因為這一行向任何人授予訪問權限,所以需要刪除。

(3)在 Web.config文件的<authorization>元素中,添加<deny users=”?”/>行,拒絕所有未通過身份驗證的用戶。

(4)創(chuàng)建一個名為“l(fā)ogin.aspx”的頁面。在默認情況下,所有未通過身份驗證的用戶都會被重新定向到這個頁面。在該頁面中添加兩個TextBox控件(txt_Username和txt_password),以便用戶提供身份驗證信息;添加一個CheckBox控件(chkPersist),供用戶選擇是否由計算機保存身份驗證信息,方便下一次自動登錄;添加一個Button控件(bt_login)作為登錄按鈕,以便用戶登錄網(wǎng)站進行身份驗證。

(5)給login.aspx頁面的登錄按鈕添加如下代碼:If System.Web.Security.FormsAuthentication.Authenticate(_txt_Username.Text,txt_password.Text)=True then'驗證用戶身份System.Web.Security.FormsAuthentication.RedirectFormLoginPage(_txt_Username.Text,chk-Persist.Checked)'驗證通過,重新定向到最初請求的頁面ElseRespone.Write(“用戶名或密碼錯誤!”)'驗證沒通過,顯示錯誤信息End If至此,使用Web.config設置ASP.NET Forms身份驗證就完成了。現(xiàn)在,當用戶訪問應用程序中的頁面時,如果未通過身份驗證,他就會被重新定向到login.aspx頁面。在該頁面上,用戶提供用戶名和密碼后,.Authenticate方法會嘗試將這些身份驗證信息與Web.config文件中定義的用戶信息進行比較。如果用戶提供的驗證信息是無效的,就會顯示一個錯誤消息;如果該信息是有效的,就運行.RedirectFormLoginPage方法將用戶重新定向到最初請求的頁面。

2 使用數(shù)據(jù)庫存儲用戶的Forms身份驗證

在開發(fā)Web應用程序項目時,如果只有幾個核心用戶組訪問站點,可以很容易地將用戶身份信息存儲在 Web.config文件中;否則,使用Web.config設置ASP.NET Forms身份驗證就不是很有效了。而且,用戶密碼存儲在純文本的XML中,開發(fā)小組中的任何人都可以提取這些信息,將影響到用戶身份信息的安全。

此時,將用戶身份信息存儲在數(shù)據(jù)庫中,使用數(shù)據(jù)庫中的信息來驗證用戶的身份就比較可靠了,具體步驟如下:

(1)建立一個數(shù)據(jù)庫(mydatabase.dbf),在數(shù)據(jù)庫中建立一個用戶身份信息表(表名:tab_users,包含列username和password)。

(2)編輯 Web.config文件,把<authentication>元素修改為<authentication mode=”Forms”/>;從<authorization>元素中刪除<allow users=”*”/>行;添加<deny users=”?”/>行。

(3)創(chuàng)建login.aspx頁面,如前所述。

(4)給login.aspx頁面的登錄按鈕添加代碼,這里不使用.Authentication方法,使用ADO.NET代碼查詢用戶身份信息表,并檢查所提供信息的有效性。如果信息有效,就運行.RedirectFormLoginPage方法將用戶重新定向到最初請求的頁面。代碼如下:

3 只驗證站點的部分頁面的Forms身份驗證

在開發(fā)Web應用程序項目時,有些情況下,站點的部分頁面需要向任何人開放,而另一部分頁面需要用戶身份驗證,只有已授權用戶才能訪問。當然,這可以通過保存一些Session會話變量和(或者)使用cookie來實現(xiàn),但還有一種更簡單的解決方案,它仍然允許使用ASP.NET Forms身份驗證,但只用于站點的部分頁面,具體的步驟如下:

(1)修改Web.config文件,以使用Forms身份驗證。如前所述,如果使用Web.config文件存儲用戶,則編輯<authentication>元素,設置應用程序的身份驗證方式為“Forms”,并為應用程序提供一組有效的用戶;如果使用數(shù)據(jù)庫存儲用戶,則把<authentication>元素修改為<authentication mode=”Forms”/>。

(2)因為部分頁面需要向任何人開放,所以不需要從<authorization>元素中刪除<allow users=”*”/>行,也不需要添加<deny users=”?”/>行。

(3)在 Web.config文件中,在<configuration>元素的后面添加如下代碼:

代碼中,用要保護的頁面替代checkpage.aspx,以確保ASP.NET拒絕任何未通過身份驗證的用戶訪問這個頁面。如果有多個要保護的頁面,則添加多個<location>塊,在路徑path參數(shù)中也可以包含文件夾和文件名。

創(chuàng)建login.aspx頁面,如前所述。

給login.aspx頁面的登錄按鈕添加相應的身份驗證代碼。

現(xiàn)在,創(chuàng)建了一個這樣的 Web應用程序,它使用Forms身份驗證,在默認情況下允許任何用戶訪問,但是在Web.config文件中添加了一個<location>子句,要求所有試圖訪問checkpage.aspx頁面的用戶都必須通過身份驗證,當他們訪問該頁面時就會被重新定向到login.aspx頁面。

如前所述,本文介紹了使用Web.config存儲用戶、使用數(shù)據(jù)庫存儲用戶、只驗證站點的部分頁面等三種ASP.NET Forms身份驗證,詳細介紹了這三種Forms身份驗證的設置步驟和實現(xiàn)代碼。

猜你喜歡
身份驗證應用程序頁面
刷新生活的頁面
刪除Win10中自帶的應用程序
谷歌禁止加密貨幣應用程序
人臉識別身份驗證系統(tǒng)在養(yǎng)老保險生存核查中的應用
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
HID Global推動多層身份驗證解決方案
Web安全問答(3)
網(wǎng)站結構在SEO中的研究與應用
三星電子將開設應用程序下載商店
微軟軟件商店開始接受應用程序