ASP.NET ログイン コントロールの概要
更新 : 2007 年 11 月
ASP.NET ログイン コントロールは、ASP.NET Web アプリケーションにプログラミング不要な信頼性の高いログイン ソリューションを提供します。ログイン コントロールは、既定で、Web サイトに対するユーザー認証を自動化するために、ASP.NET メンバシップおよびフォーム認証と統合します。ASP.NET メンバシップとフォーム認証の使用方法については、「メンバシップの概要」を参照してください。
既定では、ASP.NET ログイン コントロールは、HTTP 経由のプレーンテキストで動作します。セキュリティが不安な場合は、HTTPS と SSL 暗号化を使用してください。SSL の詳細については、IIS のドキュメントで「Configuring SSL on a Web Server or Web Site (IIS 6.0)」を参照してください。
メモ : |
---|
ASP.NET Web ページの Method が POST (既定値) から GET に変更されると、ログイン コントロールが正常に機能しなくなることがあります。 |
このトピックでは、各 ASP.NET ログイン コントロールについて説明し、コントロールの参照ドキュメントのリンクを掲載します。
Login コントロール
Login コントロールは、ユーザー認証のためのユーザー インターフェイスを表示します。Login コントロールには、ユーザー名用およびパスワード用のテキスト ボックスと、ASP.NET メンバシップを使用してユーザー ID をサーバーに格納し、次にそのサイトにアクセスするときに自動的に認証されるようにするかどうかをユーザーが選択できるチェック ボックスが含まれています。
Login コントロールには、カスタマイズされた表示、カスタマイズされたメッセージ、およびユーザーがパスワードを変更したりパスワードを忘れた場合に復元できるページへのリンクに関するプロパティが含まれています。Login コントロールは、メイン ページやホーム ページでスタンドアロン コントロールとして使用したり、専用のログイン ページで使用したりできます。
Login コントロールを ASP.NET メンバシップと併せて使用する場合は、認証を実行するコードを記述する必要はありません。ただし、独自の認証ロジックを作成する場合は、Login コントロールの Authenticate イベントを処理して、カスタムの認証コードを追加できます。
LoginView コントロール
LoginView コントロールを使用すると、匿名ユーザーとログイン ユーザーに対して異なる情報を表示できます。このコントロールは、2 つのテンプレート AnonymousTemplate または LoggedInTemplate のどちらか 1 つを表示します。これらのテンプレートには、匿名ユーザーおよび認証ユーザーのそれぞれに対して適切な情報を表示するマークアップおよびコントロールを追加できます。
LoginView コントロールには、ViewChanging および ViewChanged のイベントも含まれています。これらのイベントを使用すると、ユーザーのログイン時およびステータスの変更時のハンドラを記述できます。
LoginStatus コントロール
LoginStatus コントロールは、未認証のユーザーにログイン リンクを表示し、認証済みユーザーにログアウト リンクを表示します。ログイン リンクを介して、ユーザーにログイン ページが表示されます。ログアウト リンクは現在のユーザーの ID をリセットして匿名ユーザーにします。
LoginStatus コントロールの表示形式は、LoginText プロパティおよびLoginImageUrl プロパティを設定してカスタマイズできます。
LoginName コントロール
LoginName コントロールは、ユーザーが ASP.NET メンバシップを使用してログインしている場合は、ユーザーのログイン名を表示します。統合 Windows 認証を使用するサイトでは、代わりにユーザーの Windows アカウント名を表示します。
PasswordRecovery コントロール
PasswordRecovery コントロールは、アカウントを作成したときに使用された電子メール アドレスに基づいたユーザーのパスワードの取得を許可します。PasswordRecovery コントロールは、パスワードを含む電子メール メッセージをユーザーに送信します。
復元できない暗号化を使用してパスワードを格納するように ASP.NET メンバシップを構成できます。この場合、PasswordRecovery コントロールは現在のパスワードをユーザーに送信せずに新しいパスワードを生成します。
また、パスワードを復元するためにユーザーが答える必要のあるセキュリティ上の質問を含めるように、メンバシップを構成することもできます。こうすると、PasswordRecovery コントロールは質問を出し解答を確認してからパスワードを復元します。
PasswordRecovery コントロールでは、アプリケーションが SMTP (Simple Mail Transfer Protocol) サーバーに電子メール メッセージを転送できることが必要です。ユーザーに送信される電子メールのテキストや形式は、MailDefinition プロパティを設定してカスタマイズできます。
メモ : |
---|
電子メールで送信されるパスワード情報はクリア テキストで送信されます。 |
ASP.NET ページで、電子メール メッセージをカスタマイズする MailDefinition プロパティを設定して宣言された PasswordRecovery コントロールを次の例に示します。
<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 コントロールには、ユーザーに表示されるテンプレート化されたビューが 2 つ含まれています。最初のテンプレートは ChangePasswordTemplate で、ユーザーのパスワード変更に必要なデータの収集に使用するユーザー インターフェイスを表示します。2 番目のテンプレートは SuccessTemplate で、ユーザーのパスワードが正常に変更された後で表示されるユーザー インターフェイスを定義します。
ChangePassword コントロールは、認証済みユーザーおよび未認証のユーザーの両方に適用されます。未認証のユーザーの場合は、ログイン名の入力を要求します。認証済みユーザーの場合は、テキスト ボックスにユーザーのログイン名を表示します。