天天看點

Login控件

您都不曉得是咋回事的啊!!!

在使用 Login 控件時,還有一點需要聲明的就是,

本身對使用者的驗證這些操作而言,

并不是由 Login 控件完成的,而是在其背後有 Membership 和 Role 支援,

Login 控件所做的可以這麼說,隻是一個 UI ,然後接受使用者名,密碼等參數,

然後将這些參數傳遞給 Membership 和 Role 這些類來做處理,

是以,正在起作用的是 Membership 和 Role , 而不是 Login 控件本身。

接下來就對 Login 控件的屬性和事件做一個介紹吧,

屬性的話,

DistinationPageUrl---------指定當使用者登入成功後會跳轉到的頁面

FailureAction---------------指定當登入失敗時,要發生的動作,

                                            有 Refresh 和 RedirectToLoginPage 兩個選項

還有諸多的屬性是在屬性視窗中直接看不到的,

您可以使用 MSDN 檢視或者直接調用其代碼定義視窗,

再看幾個主要的事件吧

Authenticate--------自定義的驗證,不适用預設的 Membership 和 Role 來實作驗證,

                                而是自己編寫 ADO.NET 代碼實作驗證

LoggingIn-----------使用者按下登入按鈕時的操作(此時還沒有執行驗證)

LoggedIn------------使用者按下登入按鈕後執行驗證且通過後觸發

LogginError----------在驗證過程中出現錯誤時引發事件

再對上面的一些屬性進行解釋:

首先是 DistinationPageUrl ,如果這個屬性沒有設定的話,

那麼使用 Login 成功登入後,

會自動跳轉到在 web.config 中定義的 defaultUrl

而如果您已經定義了 DistinationPageUrl 的話,

那麼在登入成功後,便會跳轉到由這個 DistinationPageUrl 所定義的頁面上,

而不會跳轉到 web.config 中定義的 defaultUrl 指定的頁面上了。

還有就是對于 Login 控件,您可以把它轉換為模闆,

這樣的話,您便可以充分的自定義 Login 的使用者界面了,

接下來就看一個使用了 Login 的 Demo 了

首先是我定義了三個頁面

一個是 Login.aspx

一個是 Main.aspx

一個是 Demo__2.aspx

然後再看一下 web.config 中的一些配置吧,

從配置中可以看出,我設定了 loginUrl 屬性,

這個屬性的作用就是當使用者沒有通過驗證時,

使用 FormsAuthentication.RedirectToLoginPage(); 将要跳轉到的頁面,

而後我又定義了 defaultUrl ,在上面也解釋了這個屬性的使用,也

就是當使用者通過驗證且沒有設定 DestinationPageUrl 時将要跳轉到的頁面,

而後就是 path 屬性了,path=”/” 代表使用本地 localhost ,

其實在這個 forms 标記中還有很多很重要的屬性,不過大家根據命名也可以猜出個大概了,

然後呢,我就通過在 Login.aspx 中添加一個 Login 控件,并且将其轉換為模闆,

設定一下外觀屬性,

便可以得到下面的這個界面了

再看一下 Main.aspx  的 Code-Behind 和 Demo__2.aspx 的 Code-Behind,

(兩個的 Code-Behind 是一樣的)

接下來就看示範了,

首先,我先浏覽 Demo__2.aspx 頁面,可以發現其會自動跳轉到 Login.aspx 頁面上,

(這是因為在 web.config 中設定的 loginUrl 起了作用)

然後我便完成登入,登入成功後,其又會自動跳轉到 Demo__2.aspx 頁面上,

然後就是我直接使用 Login.aspx 頁面了,我一開始就浏覽 Login.aspx 頁面,

登入成功後,其又會自動跳轉到 Main.aspx 中,

(這是 DestinationPageUrl 屬性起了作用)

以上隻是簡單的對 Login 控件有了一個簡單的介紹,

不過對于其中的一些需要注意的地方,比如 web.config 中的設定,

還是要引起注意的,

其實, Login 控件的功能還遠不止這些,感興趣的可以好好的去研究一下了。