2011年10月10日 星期一

會員登入機制:進階使用登入相關控制項設計

以往我們在設計會員機制時,最常出錯的就是網頁權限的設計,網站中某些功能,例如購物車,是可以免會員登入的,但是查詢訂單的時候就需要會員,「購物車」「訂單查詢」這二個網頁需要不同權限,因些二頁在login事件中的設計就不同,而且撰寫程式碼很麻煩…另外登入後要導入哪一頁,登出後導出哪一頁,這也是個課題,以下利用Visual Studio中login類裡頭的二個控制項LoginName、LoginStatus可以輕鬆的做出。

歡迎訊息的設計:

如果使用者登入成功的話顯示歡迎的訊息,我們利用LoginName來控制項設計,LoginName的屬性中有一項FormatString可以自訂字串的連接,{0}即是使用者名稱,可以自已加入要連結的字串,如範例我們把FormatString設成「 歡迎,{0}!!! 」
image

如果要在後置程式碼使用,可以寫成Page.User.Identity.Name.ToString,如範例Profile.aspx裡,加了一個label控制項,並撰寫了下面的程式碼

Me.Label1.Text = "非常感謝您的使用," & Me.Page.User.Identity.Name.ToString & "先生/小姐,以下是您的個人訊息設定:"

登出、登入機制的設定:

利用LoginStatus控制項來設計,以下有幾個重要屬性

  1. LogoutAction屬性:登入後執行的動作,dnowba比較常用 [RedirectToLoginPage] 這個選項,如此使用者無法直接輸入網址強制觀看網頁,因為一定要通過認證後才會看到這個網頁。
  2. LogoutPageUrl屬性:登出後重導到哪一頁,LogoutAction屬性要設成[Redirect]才會發揮作用。

而LogoutAction屬性若設定成[RedirectToLoginPage]意即畫面重導到登入的畫面,預設的登入網頁是根目錄下的login.aspx,當然我們也可以在web.config裡頭自行修改目錄位置。統一設定在web.config的好處就是萬一重新設計了一個login的頁面,檔案名稱又換了,那麼不用逐一修改每個網頁,只要在CONFIG裡修改就可以了。

<system.web>
	<authentication mode="Forms" >
		<forms loginUrl="~/login.aspx"></forms>
	</authentication>
</system.web>

網頁檢驗是否登入成功

若是網站裡某些網頁需要認證後才可使用/觀看,可以在Page Load事件裡頭寫入以下程式碼

        If Me.User.Identity.IsAuthenticated = False Then
            FormsAuthentication.RedirectToLoginPage()
        End If

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...
// Dnow Function