Share via


ASP.NET 登入控制項概觀

更新:2007 年 11 月

ASP.NET 登入控制項會為 ASP.NET Web 應用程式提供十分完整的登入方案,而且不必撰寫程式。根據預設,登入控制項會與 ASP.NET 成員資格整合並產生驗證,協助網站自動化使用者驗證。如需如何將 ASP.NET 成員資格與表單驗證搭配使用的詳細資訊,請參閱成員資格簡介

根據預設,ASP.NET 登入控制項透過 HTTP 以純文字運作。如果您擔心安全性問題,請使用含 SSL 加密的 HTTPS。如需 SSL 的詳細資訊,請參閱 IIS 文件中的在 Web 伺服器或網站上設定 SSL (IIS 6.0) (英文)。

注意事項:

如果 ASP.NET 網頁的 Method 從 POST (預設值) 變更為 GET,則登入控制項可能無法正常執行。

本主題將說明每個 ASP.NET 登入控制項,並提供控制項的參考文件連結。

登入控制項

Login 控制項會顯示使用者驗證的使用者介面。Login 控制項會包含使用者名稱和密碼的文字方塊,以及一個核取方塊,讓使用者能指出是否要伺服器使用 ASP.NET 成員資格儲存其識別 (Identity),並於下次造訪網站時自動進行驗證。

Login 控制項具有自訂顯示、自訂訊息和其他頁面 (讓使用者可以變更其密碼或復原遺忘的密碼) 之連結的屬性 (Property)。Login 控制項在主要頁面或首頁上可當做獨立的控制項使用,或者您可以將它用於專用登入頁面中。

如果您使用具備 ASP.NET 成員資格的 Login 控制項,則不必撰寫程式碼便可執行驗證 (Authentication)。不過,如果您想建立自己的驗證邏輯,可以處理 Login 控制項的 Authenticate 事件並加入自訂驗證碼。

LoginView 控制項

LoginView 控制項允許您顯示不同的資訊給匿名和登入的使用者。此控制項會顯示下列其中一個範本:AnonymousTemplateLoggedInTemplate。您可以在範本中加入標記,以及會分別顯示相關資訊給匿名使用者和驗證使用者的控制項。

LoginView 控制項也會包含 ViewChangingViewChanged 的事件,允許您在使用者登入和變更狀態時撰寫處理常式。

LoginStatus 控制項

LoginStatus 控制項會顯示登入連結給未經驗證的使用者,並顯示登出連結給已驗證的使用者。登入連結會將使用者帶往登入頁面。登出連結會將使用者的識別重設為匿名使用者。

您也可以設定 LoginTextLoginImageUrl 屬性,自訂 LoginStatus 控制項的外觀。

LoginName 控制項

如果使用者已使用 ASP.NET 成員資格登入,則 LoginName 控制項會顯示使用者的登入名稱。此外,如果站台使用整合式 Windows 驗證,控制項會顯示使用者的 Windows 帳戶名稱。

PasswordRecovery 控制項

PasswordRecovery 控制項允許根據建立帳戶時所使用的電子郵件地址擷取使用者密碼。PasswordRecovery 控制項會將包含密碼的電子郵件訊息傳送給使用者。

您可以設定 ASP.NET 成員資格,使用無法復原的加密來儲存密碼。在此情況下,PasswordRecovery 控制項會產生新密碼,而不會將原始密碼傳送給使用者。

您也可以設定成員資格,包含使用者必須回答才可復原密碼的安全性問題。如果這麼做,則 PasswordRecovery 控制項會詢問問題,並在復原密碼前檢查答案。

PasswordRecovery 控制項會要求應用程式將電子郵件訊息轉送至 Simple Mail Transfer Protocol (SMTP) 伺服器。您可以設定 MailDefinition 屬性,以便自訂傳送給使用者之電子郵件訊息的文字和格式。

注意事項:

在電子郵件訊息中傳送的密碼資訊會當做純文字傳送。

下列範例會顯示在 ASP.NET Web 網頁中宣告的 PasswordRecovery 控制項和 MailDefinition 屬性設定,以自訂電子郵件訊息。

<asp:PasswordRecovery ID="PasswordRecovery1" Runat="server" 
    SubmitButtonText="Get Password" SubmitButtonType="Link">
  <MailDefinition From="administrator@Contoso.com" 
    Subject="Your new password"
    BodyFileName="PasswordMail.txt" />
</asp:PasswordRecovery>

CreateUserWizard 控制項

CreateUserWizard 控制項會向潛在的使用者收集資訊。根據預設,CreateUserWizard 控制項會將新使用者加入至 ASP.NET 成員資格系統。

CreateUserWizard 控制項會收集下列使用者資訊:

  • 使用者名稱

  • 密碼

  • 確認密碼

  • 電子郵件地址

  • 安全性問題

  • 安全性解答

此資訊會用於驗證使用者,並視需要復原使用者密碼。

注意事項:

CreateUserWizard 控制項是繼承自 Wizard 控制項。

下列範例會顯示 CreateUserWizard 控制項的典型 ASP.NET 宣告:

<asp:CreateUserWizard ID="CreateUserWizard1" Runat="server" 
    ContinueDestinationPageUrl="~/Default.aspx">
  <WizardSteps>
    <asp:CreateUserWizardStep Runat="server" 
      Title="Sign Up for Your New Account">
    </asp:CreateUserWizardStep>
    <asp:CompleteWizardStep Runat="server" 
      Title="Complete">
    </asp:CompleteWizardStep>
  </WizardSteps>
</asp:CreateUserWizard>

ChangePassword 控制項

ChangePassword 控制項允許使用者變更密碼。使用者必須先提供原始密碼,然後再建立並確認新密碼。如果原始密碼正確,則使用者密碼會變更為新密碼。此控制項也包含傳送有關新密碼之電子郵件訊息的支援。

ChangePassword 控制項包含兩個會顯示給使用者的範本化檢視。第一個是 ChangePasswordTemplate,它會顯示用於收集變更使用者密碼所需資料的使用者介面。第二個範本則是 SuccessTemplate,它會定義在使用者密碼已順利變更後所顯示的使用者介面。

ChangePassword 控制項適用於已驗證和未經驗證的使用者。如果使用者尚未經過驗證,此控制項會提示使用者輸入登入名稱。如果使用者已經過驗證,則此控制項會在文字方塊中填入 (Populate) 使用者的登入名稱。

請參閱

概念

自訂 ASP.NET 登入控制項的外觀