Membership クラス

定義

ユーザーの資格情報を検証し、ユーザー設定を管理します。 このクラスは継承できません。

public ref class Membership abstract sealed
public static class Membership
type Membership = class
Public Class Membership
継承
Membership

次のコード例は、フォーム認証と ASP.NET メンバーシップを使用するように構成された ASP.NET アプリケーションのログイン ページを示しています。 指定されたユーザー資格情報が無効な場合は、ユーザーにメッセージが表示されます。 それ以外の場合、ユーザーはメソッドを使用して RedirectFromLoginPage 最初に要求された URL にリダイレクトされます。

注意

ASP.NET ログイン コントロール (Login、、LoginNamePasswordRecovery) は、LoginViewLoginStatusユーザーに資格情報の入力を求め、メンバーシップ システムの資格情報を検証するために必要なすべてのロジックをカプセル化し、クラスを使用してプログラムによるチェックの代わりに使用Membershipできます。

重要

この例には、潜在的なセキュリティ上の脅威であるユーザー入力を受け入れるテキスト ボックスが含まれています。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Login_OnClick(object sender, EventArgs args)
{
   if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
   else
     Msg.Text = "Login failed. Please check your user name and password and try again.";
}


</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Login_OnClick(sender As Object, args As  EventArgs)

   If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked)
   Else
     Msg.Text = "Login failed. Please check your user name and password and try again."
   End If

End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Username: <asp:Textbox id="UsernameTextbox" runat="server" /><br />
  Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><br />
 
  <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
  <asp:CheckBox id="NotPublicCheckBox" runat="server" /> 
  Check here if this is <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

注釈

このMembershipクラスは、ASP.NET アプリケーションでユーザー資格情報を検証し、パスワードや電子メール アドレスなどのユーザー設定を管理するために使用されます。 このクラスは Membership 、単独で使用することも、Web アプリケーションまたはサイトの FormsAuthentication ユーザーを認証するための完全なシステムを作成するために組み合わせて使用することもできます。 コントロールは Login 、ユーザーを Membership 検証するための便利なメカニズムを提供するために、クラスをカプセル化します。

注意

ASP.NET のメンバーシップ機能に慣れていない場合は、続行する前にメンバーシップの概要を参照してください。 メンバーシップに関連するその他のトピックの一覧については、「メンバーシップ を使用したユーザーの管理」を参照してください。

クラスには Membership 、次の機能が用意されています。

  • 新しいユーザーを作成する。

  • メンバーシップ情報 (ユーザー名、パスワード、電子メール アドレス、およびサポート データ) をMicrosoft SQL Serverまたは別のデータ ストアに格納する。

  • サイトにアクセスするユーザーを認証する。 ユーザーをプログラムで認証することも、コントロールを Login 使用して、コードをほとんど必要としない完全な認証システムを作成することもできます。

  • パスワードの管理。パスワードの作成、変更、取得、リセットなどが含まれます。 必要に応じて、パスワードを忘れたユーザーに対してパスワードのリセット要求または取得要求を認証するためにパスワードの質問と回答を要求するように、ASP.NET メンバーシップを構成できます。

ASP.NET メンバーシップは認証用 ASP.NET の自己完結型機能ですが、ASP.NET ロール管理と統合して、サイトの承認サービスを提供できます。 メンバーシップは、ASP.NET ユーザーと統合して、個々のユーザーSystem.Web.Profileに合わせてカスタマイズできるアプリケーション固有のカスタマイズを提供することもできます。 詳細については、「ロール管理ASP.NET プロファイルのプロパティの概要」を参照してください。

このクラスは Membership 、メンバーシップ プロバイダーに依存してデータ ソースと通信します。 .NET Frameworkには、Microsoft SQL Server データベースにユーザー情報を格納する機能とActiveDirectoryMembershipProvider、Active Directory または Active Directory アプリケーション モード (ADAM) サーバーにユーザー情報を格納できるユーザー情報が含まれますSqlMembershipProvider。 カスタム メンバーシップ プロバイダーを実装して、クラスで Membership 使用できる代替データ ソースと通信することもできます。 カスタム メンバーシップ プロバイダーは抽象クラスを MembershipProvider 継承します。 詳細については、「 メンバーシップ プロバイダーの実装」を参照してください。

既定では、ASP.NET メンバーシップはすべての ASP.NET アプリケーションで有効になっています。 既定のメンバーシップ プロバイダーは、名前AspNetSqlProviderSqlMembershipProvider持つコンピューター構成で指定されています。 既定のSqlMembershipProviderインスタンスは、Microsoft SQL Serverのローカル インスタンスに接続するように構成されます。

既定の設定を変更して、インスタンス以外のインスタンスをSqlMembershipProvider既定のAspNetSqlProviderプロバイダーとして指定するか、Web.config ファイルを使用して、ASP.NET アプリケーションの既定のプロバイダーとしてカスタム プロバイダーのインスタンスを指定できます。 Web.config ファイルのメンバーシップ構成セクションを使用して、Web アプリケーションの ASP.NET メンバーシップ構成を指定できます。 メンバーシップ セクションのプロバイダー サブセクションを使用して、既定のプロバイダー以外のメンバーシップ プロバイダーを指定できます。 たとえば、次のメンバーシップ セクションでは、現在のアプリケーション構成から既定のメンバーシップ プロバイダーを削除し、その名前を持つ新しいプロバイダーを、その名前AspSqlServerSqlProviderSQL Serverインスタンスに追加します。

<configuration>  
  <connectionStrings>  
    <add name="SqlServices" connectionString="Data Source=AspSqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />  
  </connectionStrings>  
  <system.web>  
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">  
      <providers>  
        <remove name="AspNetSqlProvider" />  
        <add name="SqlProvider"  
          type="System.Web.Security.SqlMembershipProvider"  
          connectionStringName="SqlServices"  
          enablePasswordRetrieval="false"  
          enablePasswordReset="true"  
          requiresQuestionAndAnswer="true"  
          passwordFormat="Hashed"  
          applicationName="/" />  
      </providers>  
    </membership>  
  </system.web>  
</configuration>  

プロパティ

ApplicationName

アプリケーションの名前を取得または設定します。

EnablePasswordReset

現在のメンバーシップ プロバイダーによってユーザーにパスワードのリセットが許可されているかどうかを示す値を取得します。

EnablePasswordRetrieval

現在のメンバーシップ プロバイダーによってユーザーにパスワードの取得が許可されているかどうかを示す値を取得します。

HashAlgorithmType

パスワードをハッシュするために使用するアルゴリズムの識別子。

MaxInvalidPasswordAttempts

メンバーシップ ユーザーがロック アウトされるまでの無効なパスワードまたはパスワード解答の試行回数を取得します。

MinRequiredNonAlphanumericCharacters

有効なパスワードに存在する必要がある特殊文字の最小数を取得します。

MinRequiredPasswordLength

パスワードに最低限必要な長さを取得します。

PasswordAttemptWindow

有効なパスワードまたはパスワードの解答の指定までに、連続して失敗した試行を追跡する時間枠を取得します。

PasswordStrengthRegularExpression

パスワードの評価に使用される正規表現を取得します。

Provider

アプリケーションの既定のメンバーシップ プロバイダーへの参照を取得します。

Providers

ASP.NET アプリケーションのメンバーシップ プロバイダーのコレクションを取得します。

RequiresQuestionAndAnswer

ユーザーがパスワードをリセットおよび取得する際にパスワードの質問に答えなければならないように、既定のメンバーシップ プロバイダーが構成されているかどうかを示す値を取得します。

UserIsOnlineTimeWindow

それ以降ユーザーがもはやオンラインでないと見なされる、ユーザーの最終利用日時スタンプからの時間を分単位で指定します。

メソッド

CreateUser(String, String)

新しいユーザーをデータ ストアに追加します。

CreateUser(String, String, String)

電子メール アドレスを指定して新しいユーザーをデータ ストアに追加します。

CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus)

プロパティ値を指定して新しいユーザーをデータ ストアに追加し、ユーザーの作成に成功したかどうか、または失敗の理由を示すステータス パラメーターを返します。

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)

指定したプロパティ値と一意の ID で新しいユーザーをデータ ストアに追加し、ユーザーの作成に成功したかどうか、または失敗の理由を示すステータス パラメーターを返します。

DeleteUser(String)

データベースからユーザーと関連するユーザー データを削除します。

DeleteUser(String, Boolean)

データベースからユーザーを削除します。

FindUsersByEmail(String)

指定したメール アドレスと一致するメール アドレスを持つメンバーシップ ユーザーのコレクションを取得します。

FindUsersByEmail(String, Int32, Int32, Int32)

電子メール アドレスが指定内容と一致するメンバーシップ ユーザーのコレクションをページで取得します。

FindUsersByName(String)

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションを取得します。

FindUsersByName(String, Int32, Int32, Int32)

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションをページで取得します。

GeneratePassword(Int32, Int32)

指定した長さのランダム パスワードを生成します。

GetAllUsers()

データベース内のすべてのユーザーのコレクションを取得します。

GetAllUsers(Int32, Int32, Int32)

データベース内のすべてのユーザーのコレクションをページで取得します。

GetNumberOfUsersOnline()

アプリケーションに現在アクセスしているユーザーの数を取得します。

GetUser()

データ ソースから情報を取得し、現在ログオンしているメンバーシップ ユーザーの最終利用日時スタンプを更新します。

GetUser(Boolean)

現在ログオンしているメンバーシップ ユーザーの情報をデータ ソースから取得します。 現在ログオンしているメンバーシップ ユーザーの最終利用日時スタンプを更新するように指定することもできます。

GetUser(Object)

指定した一意の ID と関連付けられているメンバーシップ ユーザーの情報をデータ ソースから取得します。

GetUser(Object, Boolean)

指定した一意の ID と関連付けられているメンバーシップ ユーザーの情報をデータ ソースから取得します。 そのユーザーの最終利用日時スタンプを更新するように指定することもできます。

GetUser(String)

指定したメンバーシップ ユーザーの情報をデータ ソースから取得します。

GetUser(String, Boolean)

指定したメンバーシップ ユーザーの情報をデータ ソースから取得します。 そのユーザーの最終利用日時スタンプを更新するように指定することもできます。

GetUserNameByEmail(String)

電子メール アドレスが指定内容と一致するユーザー名を取得します。

UpdateUser(MembershipUser)

指定したユーザーの情報でデータベースを更新します。

ValidateUser(String, String)

指定されたユーザー名とパスワードが有効かどうかを検証します。

events

ValidatingPassword

ユーザーが作成されるとき、パスワードが変更されるとき、またはリセットされるときに発生します。

適用対象

こちらもご覧ください