次の方法で共有


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、、および PasswordRecovery) は、LoginViewLoginStatusLoginNameユーザーに資格情報の入力を求め、メンバーシップ システムで資格情報を検証するために必要なすべてのロジックをカプセル化し、 クラスを使用してプログラムによるチェックの代わりに使用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 、単独で使用することも、 と FormsAuthentication 組み合わせて使用して、Web アプリケーションまたはサイトのユーザーを認証するための完全なシステムを作成することもできます。 コントロールは 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 データベースにユーザー情報を格納する と、 が含 SqlMembershipProviderまれています。これにより、 ActiveDirectoryMembershipProviderActive Directory または Active Directory アプリケーション モード (ADAM) サーバーにユーザー情報を格納できます。 カスタム メンバーシップ プロバイダーを実装して、 クラスで Membership 使用できる代替データ ソースと通信することもできます。 カスタム メンバーシップ プロバイダーは抽象クラスを MembershipProvider 継承します。 詳細については、「 メンバーシップ プロバイダーの実装」を参照してください。

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

既定の設定を変更して、 インスタンス以外の AspNetSqlProviderSqlMembershipProvider既定のプロバイダーとして指定することも、Web.config ファイルを使用して、ASP.NET アプリケーションの既定のプロバイダーとしてカスタム プロバイダーのインスタンスを指定することもできます。 Web.config ファイルのメンバーシップ構成セクションを使用して、Web アプリケーションの ASP.NET メンバーシップ 構成を指定できます。 メンバーシップ セクションの providers サブセクションを使用して、既定のプロバイダーの 1 つ以外のメンバーシップ プロバイダーを指定できます。 たとえば、次のメンバーシップ セクションでは、現在のアプリケーション構成から既定のメンバーシップ プロバイダーを削除し、 という名前の新しいプロバイダーを追加します。このプロバイダーは、 という名前AspSqlServerSqlProvider SQL 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)

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

イベント

ValidatingPassword

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

適用対象

こちらもご覧ください