MembershipUser クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説
MembershipUser オブジェクトは、メンバシップ データ ストア内の単一のメンバシップ ユーザーを表すのに使用されます。電子メールなどのメンバシップ ユーザーに関する情報を公開し、パスワードの変更やリセットなど、メンバシップ ユーザー情報を管理する機能を提供します。
MembershipUser オブジェクトは、GetUserメソッドおよび CreateUser メソッドから返されます。また、GetAllUsers、FindUsersByName、および FindUsersByEmail の各メソッドによって返される MembershipUserCollection の一部になります。
既存のメンバシップ ユーザーの情報を更新する場合には、UpdateUser メソッドが MembershipUser オブジェクトを返す必要があります。
ユーザーの電子メール アドレスを更新するコード例を次に示します。
<%@ Page Language="vb" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Dim u As MembershipUser Public Sub Page_Load(sender As Object, args As EventArgs) u = Membership.GetUser(User.Identity.Name) If Not IsPostBack Then EmailTextBox.Text = u.Email End Sub Public Sub UpdateEmailButton_OnClick(sender As Object, args As EventArgs) Try u.Email = EmailTextBox.Text Membership.UpdateUser(u) Msg.Text = "User e-mail updated." Catch e As System.Configuration.Provider.ProviderException Msg.Text = e.Message End Try End Sub </script> <html> <head> <title>Sample: Update User E-Mail</title> </head> <body> <form runat="server"> <h3>Update E-Mail Address for <%=User.Identity.Name%></h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><BR> <table CellPadding="3" border="0"> <tr> <td>E-mail Address:</td> <td><asp:TextBox id="EmailTextBox" MaxLength="128" Columns="30" runat="server" /></td> <td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server" ControlToValidate="EmailTextBox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td></td> <td><asp:Button id="UpdateEmailButton" Text="Update E-mail" OnClick="UpdateEmailButton_OnClick" runat="server" /></td> </tr> </table> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> MembershipUser u; public void Page_Load(object sender, EventArgs args) { u = Membership.GetUser(User.Identity.Name); if (!IsPostBack) { EmailTextBox.Text = u.Email; } } public void UpdateEmailButton_OnClick(object sender, EventArgs args) { try { u.Email = EmailTextBox.Text; Membership.UpdateUser(u); Msg.Text = "User e-mail updated."; } catch (System.Configuration.Provider.ProviderException e) { Msg.Text = e.Message; } } </script> <html> <head> <title>Sample: Update User E-Mail</title> </head> <body> <form runat="server"> <h3>Update E-Mail Address for <%=User.Identity.Name%></h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><BR> <table CellPadding="3" border="0"> <tr> <td>E-mail Address:</td> <td><asp:TextBox id="EmailTextBox" MaxLength="128" Columns="30" runat="server" /></td> <td><asp:RequiredFieldValidator id="EmailRequiredValidator" runat="server" ControlToValidate="EmailTextBox" ForeColor="red" Display="Static" ErrorMessage="Required" /></td> </tr> <tr> <td></td> <td><asp:Button id="UpdateEmailButton" Text="Update E-mail" OnClick="UpdateEmailButton_OnClick" runat="server" /></td> </tr> </table> </form> </body> </html>
System.Web.Security.MembershipUser
System.Web.Security.ActiveDirectoryMembershipUser
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
MembershipUser コンストラクタ ()
アセンブリ: System.Web (system.web.dll 内)
構文
解説
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
MembershipUser コンストラクタ (String, String, Object, String, String, String, Boolean, Boolean, DateTime, DateTime, DateTime, DateTime, DateTime)
アセンブリ: System.Web (system.web.dll 内)
構文
Public Sub New ( _ providerName As String, _ name As String, _ providerUserKey As Object, _ email As String, _ passwordQuestion As String, _ comment As String, _ isApproved As Boolean, _ isLockedOut As Boolean, _ creationDate As DateTime, _ lastLoginDate As DateTime, _ lastActivityDate As DateTime, _ lastPasswordChangedDate As DateTime, _ lastLockoutDate As DateTime _ )
Dim providerName As String Dim name As String Dim providerUserKey As Object Dim email As String Dim passwordQuestion As String Dim comment As String Dim isApproved As Boolean Dim isLockedOut As Boolean Dim creationDate As DateTime Dim lastLoginDate As DateTime Dim lastActivityDate As DateTime Dim lastPasswordChangedDate As DateTime Dim lastLockoutDate As DateTime Dim instance As New MembershipUser(providerName, name, providerUserKey, email, passwordQuestion, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockoutDate)
public MembershipUser ( string providerName, string name, Object providerUserKey, string email, string passwordQuestion, string comment, bool isApproved, bool isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate, DateTime lastLockoutDate )
public: MembershipUser ( String^ providerName, String^ name, Object^ providerUserKey, String^ email, String^ passwordQuestion, String^ comment, bool isApproved, bool isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate, DateTime lastLockoutDate )
public MembershipUser ( String providerName, String name, Object providerUserKey, String email, String passwordQuestion, String comment, boolean isApproved, boolean isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate, DateTime lastLockoutDate )
public function MembershipUser ( providerName : String, name : String, providerUserKey : Object, email : String, passwordQuestion : String, comment : String, isApproved : boolean, isLockedOut : boolean, creationDate : DateTime, lastLoginDate : DateTime, lastActivityDate : DateTime, lastPasswordChangedDate : DateTime, lastLockoutDate : DateTime )
新しい MembershipUser オブジェクトを作成しても、メンバシップ データ ストアに新しいメンバシップ ユーザー オブジェクトが追加されるわけではありません。新しいメンバシップ ユーザーをメンバシップ データ ストアに追加するには、CreateUser メソッドを使用する必要があります。CreateUser メソッドはデータ ストアに追加されたメンバシップ ユーザーの MembershipUser オブジェクトを返します。
UpdateUser メソッドで使用するための MembershipUser オブジェクトはアプリケーション コード内で構築できます。また、CreateUser、GetUser、GetAllUsers、FindUsersByName、または FindUsersByEmail の各メソッドから返される MembershipUser オブジェクトを UpdateUser メソッドに渡すこともできます。
一般的には、MembershipUser オブジェクトは CreateUser、GetUser、GetAllUsers、FindUsersByName、および FindUsersByEmail の各メソッドのメンバシップ プロバイダ実装によって作成されます。
メンバシップ プロバイダに対して CreateUser メソッドを実装する方法を次のコード例に示します。このメソッドは、ユーザーがデータ ストアに正常に追加されたときに返される MembershipUser オブジェクトを構築します。
Public Overrides Function CreateUser(ByVal username As String, _ ByVal password As String, _ ByVal email As String, _ ByVal passwordQuestion As String, _ ByVal passwordAnswer As String, _ ByVal isApproved As Boolean, _ ByVal providerUserKey As Object, _ ByRef status As MembershipCreateStatus) As MembershipUser Dim Args As ValidatePasswordEventArgs = _ New ValidatePasswordEventArgs(username, password, True) OnValidatingPassword(args) If args.Cancel Then status = MembershipCreateStatus.InvalidPassword Return Nothing End If If RequiresUniqueEmail AndAlso GetUserNameByEmail(email) <> "" Then status = MembershipCreateStatus.DuplicateEmail Return Nothing End If Dim u As MembershipUser = GetUser(username, False) If u Is Nothing Then Dim createDate As DateTime = DateTime.Now If providerUserKey Is Nothing Then providerUserKey = Guid.NewGuid() Else If Not TypeOf providerUserKey Is Guid Then status = MembershipCreateStatus.InvalidProviderUserKey Return Nothing End If End If Dim conn As OdbcConnection = New OdbcConnection(ConnectionString) Dim cmd As OdbcCommand = New OdbcCommand("INSERT INTO [" & TableName & "]" & _ " (PKID, Username, Password, Email, PasswordQuestion, " & _ " PasswordAnswer, IsApproved," & _ " Comment, CreationDate, LastPasswordChangedDate, LastActivityDate," & _ " ApplicationName, IsLockedOut, LastLockedOutDate," & _ " FailedPasswordAttemptCount, FailedPasswordAttemptWindowStart, " & _ " FailedPasswordAnswerAttemptCount, FailedPasswordAnswerAttemptWindowStart)" & _ " Values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", conn) cmd.Parameters.Add("@PKID", OdbcType.UniqueIdentifier).Value = providerUserKey cmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username cmd.Parameters.Add("@Password", OdbcType.VarChar, 255).Value = EncodePassword(password) cmd.Parameters.Add("@Email", OdbcType.VarChar, 128).Value = email cmd.Parameters.Add("@PasswordQuestion", OdbcType.VarChar, 255).Value = passwordQuestion cmd.Parameters.Add("@PasswordAnswer", OdbcType.VarChar, 255).Value = EncodePassword(passwordAnswer) cmd.Parameters.Add("@IsApproved", OdbcType.Bit).Value = isApproved cmd.Parameters.Add("@Comment", OdbcType.VarChar, 255).Value = "" cmd.Parameters.Add("@CreationDate", OdbcType.DateTime).Value = createDate cmd.Parameters.Add("@LastPasswordChangedDate", OdbcType.DateTime).Value = createDate cmd.Parameters.Add("@LastActivityDate", OdbcType.DateTime).Value = createDate cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = pApplicationName cmd.Parameters.Add("@IsLockedOut", OdbcType.Bit).Value = False cmd.Parameters.Add("@LastLockedOutDate", OdbcType.DateTime).Value = createDate cmd.Parameters.Add("@FailedPasswordAttemptCount", OdbcType.Int).Value = 0 cmd.Parameters.Add("@FailedPasswordAttemptWindowStart", OdbcType.DateTime).Value = createDate cmd.Parameters.Add("@FailedPasswordAnswerAttemptCount", OdbcType.Int).Value = 0 cmd.Parameters.Add("@FailedPasswordAnswerAttemptWindowStart", OdbcType.DateTime).Value = createDate Try conn.Open() Dim recAdded As Integer = cmd.ExecuteNonQuery() If recAdded > 0 Then status = MembershipCreateStatus.Success Else status = MembershipCreateStatus.UserRejected End If Catch e As OdbcException ' Handle exception. status = MembershipCreateStatus.ProviderError Finally conn.Close() End Try Return GetUser(username, False) Else status = MembershipCreateStatus.DuplicateUserName End If Return Nothing End Function
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true); OnValidatingPassword(args); if (args.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } if (RequiresUniqueEmail && GetUserNameByEmail(email) != "") { status = MembershipCreateStatus.DuplicateEmail; return null; } MembershipUser u = GetUser(username, false); if (u == null) { DateTime createDate = DateTime.Now; if (providerUserKey == null) { providerUserKey = Guid.NewGuid(); } else { if (!(providerUserKey is Guid)) { status = MembershipCreateStatus.InvalidProviderUserKey; return null; } } OdbcConnection conn = new OdbcConnection(ConnectionString); OdbcCommand cmd = new OdbcCommand("INSERT INTO [" + tableName + "]" + " (PKID, Username, Password, Email, PasswordQuestion, " + " PasswordAnswer, IsApproved," + " Comment, CreationDate, LastPasswordChangedDate, LastActivityDate," + " ApplicationName, IsLockedOut, LastLockedOutDate," + " FailedPasswordAttemptCount, FailedPasswordAttemptWindowStart, " + " FailedPasswordAnswerAttemptCount, FailedPasswordAnswerAttemptWindowStart)" + " Values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", conn); cmd.Parameters.Add("@PKID", OdbcType.UniqueIdentifier).Value = providerUserKey; cmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username; cmd.Parameters.Add("@Password", OdbcType.VarChar, 255).Value = EncodePassword(password); cmd.Parameters.Add("@Email", OdbcType.VarChar, 128).Value = email; cmd.Parameters.Add("@PasswordQuestion", OdbcType.VarChar, 255).Value = passwordQuestion; cmd.Parameters.Add("@PasswordAnswer", OdbcType.VarChar, 255).Value = EncodePassword(passwordAnswer); cmd.Parameters.Add("@IsApproved", OdbcType.Bit).Value = isApproved; cmd.Parameters.Add("@Comment", OdbcType.VarChar, 255).Value = ""; cmd.Parameters.Add("@CreationDate", OdbcType.DateTime).Value = createDate; cmd.Parameters.Add("@LastPasswordChangedDate", OdbcType.DateTime).Value = createDate; cmd.Parameters.Add("@LastActivityDate", OdbcType.DateTime).Value = createDate; cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = pApplicationName; cmd.Parameters.Add("@IsLockedOut", OdbcType.Bit).Value = false; cmd.Parameters.Add("@LastLockedOutDate", OdbcType.DateTime).Value = createDate; cmd.Parameters.Add("@FailedPasswordAttemptCount", OdbcType.Int).Value = 0; cmd.Parameters.Add("@FailedPasswordAttemptWindowStart", OdbcType.DateTime).Value = createDate; cmd.Parameters.Add("@FailedPasswordAnswerAttemptCount", OdbcType.Int).Value = 0; cmd.Parameters.Add("@FailedPasswordAnswerAttemptWindowStart", OdbcType.DateTime).Value = createDate; try { conn.Open(); int recAdded = cmd.ExecuteNonQuery(); if (recAdded > 0) { status = MembershipCreateStatus.Success; } else { status = MembershipCreateStatus.UserRejected; } } catch (OdbcException) { // Handle exception. status = MembershipCreateStatus.ProviderError; } finally { conn.Close(); } return GetUser(username, false); } else { status = MembershipCreateStatus.DuplicateUserName; } return null; }
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
MembershipUser コンストラクタ
オーバーロードの一覧
名前 | 説明 |
---|---|
MembershipUser () | MembershipUser クラスを継承するクラスに対し、MembershipUser オブジェクトの新しいインスタンスを作成します。 |
MembershipUser (String, String, Object, String, String, String, Boolean, Boolean, DateTime, DateTime, DateTime, DateTime, DateTime) | 新しいメンバシップ ユーザー オブジェクトを指定のプロパティ値で作成します。 |
MembershipUser プロパティ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
Comment | メンバシップ ユーザーのアプリケーション固有情報を取得または設定します。 | |
CreationDate | ユーザーがメンバシップ データ ストアに追加された日時を取得します。 | |
メンバシップ ユーザーの電子メール アドレスを取得または設定します。 | ||
IsApproved | メンバシップ ユーザーを認証できるかどうかを示す値を取得または設定します。 | |
IsLockedOut | メンバシップ ユーザーがロックされ、検証できない状態であるかどうかを示す値を取得します。 | |
IsOnline | ユーザーがオンライン中であるかどうかを示す値を取得します。 | |
LastActivityDate | メンバシップ ユーザーが最後に認証された日時またはアプリケーションにアクセスした日時を取得または設定します。 | |
LastLockoutDate | メンバシップ ユーザーがロックされた最新の日時を取得します。 | |
LastLoginDate | ユーザーが最後に認証された日時を取得または設定します。 | |
LastPasswordChangedDate | メンバシップ ユーザーのパスワードが最後に更新されたときの日時を取得します。 | |
PasswordQuestion | メンバシップ ユーザーに対するパスワードの質問を取得します。 | |
ProviderName | メンバシップ ユーザーのユーザー情報を格納および取得するメンバシップ プロバイダの名前を取得します。 | |
ProviderUserKey | メンバシップ データ ソースからユーザー ID を取得します。 | |
UserName | メンバシップ ユーザーのログオン名を取得します。 |
MembershipUser メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
ChangePassword | メンバシップ データ ストア内のメンバシップ ユーザーのパスワードを更新します。 | |
ChangePasswordQuestionAndAnswer | メンバシップ データ ストア内のメンバシップ ユーザーのパスワードの質問と解答を更新します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) | |
GetPassword | オーバーロードされます。 メンバシップ データ ストアからメンバシップ ユーザーのパスワードを取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ResetPassword | オーバーロードされます。 ユーザーのパスワードを、自動的に生成された新しいパスワードにリセットします。 | |
ToString | オーバーライドされます。 メンバシップ ユーザーのユーザー名を返します。 | |
UnlockUser | ユーザーのロック状態を解除して、メンバシップ ユーザーを検証可能な状態にします。 |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
MembershipUser メンバ
メンバシップ データ ストア内のメンバシップ ユーザー情報を公開および更新します。
MembershipUser データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
プロテクト コンストラクタ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
Comment | メンバシップ ユーザーのアプリケーション固有情報を取得または設定します。 | |
CreationDate | ユーザーがメンバシップ データ ストアに追加された日時を取得します。 | |
メンバシップ ユーザーの電子メール アドレスを取得または設定します。 | ||
IsApproved | メンバシップ ユーザーを認証できるかどうかを示す値を取得または設定します。 | |
IsLockedOut | メンバシップ ユーザーがロックされ、検証できない状態であるかどうかを示す値を取得します。 | |
IsOnline | ユーザーがオンライン中であるかどうかを示す値を取得します。 | |
LastActivityDate | メンバシップ ユーザーが最後に認証された日時またはアプリケーションにアクセスした日時を取得または設定します。 | |
LastLockoutDate | メンバシップ ユーザーがロックされた最新の日時を取得します。 | |
LastLoginDate | ユーザーが最後に認証された日時を取得または設定します。 | |
LastPasswordChangedDate | メンバシップ ユーザーのパスワードが最後に更新されたときの日時を取得します。 | |
PasswordQuestion | メンバシップ ユーザーに対するパスワードの質問を取得します。 | |
ProviderName | メンバシップ ユーザーのユーザー情報を格納および取得するメンバシップ プロバイダの名前を取得します。 | |
ProviderUserKey | メンバシップ データ ソースからユーザー ID を取得します。 | |
UserName | メンバシップ ユーザーのログオン名を取得します。 |
名前 | 説明 | |
---|---|---|
ChangePassword | メンバシップ データ ストア内のメンバシップ ユーザーのパスワードを更新します。 | |
ChangePasswordQuestionAndAnswer | メンバシップ データ ストア内のメンバシップ ユーザーのパスワードの質問と解答を更新します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) | |
GetPassword | オーバーロードされます。 メンバシップ データ ストアからメンバシップ ユーザーのパスワードを取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ResetPassword | オーバーロードされます。 ユーザーのパスワードを、自動的に生成された新しいパスワードにリセットします。 | |
ToString | オーバーライドされます。 メンバシップ ユーザーのユーザー名を返します。 | |
UnlockUser | ユーザーのロック状態を解除して、メンバシップ ユーザーを検証可能な状態にします。 |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
- MembershipUserのページへのリンク