非常に基本的なものが欠けていると思いますが、ここに私の窮状があります。VB.netでMembershipUser
、Webサービスからオブジェクトを継承して返すクラスを作成しました。
Public Class ModifiedUser
Inherits MembershipUser
ユーザーは次のようにログインします。
Private Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
Dim ws As New MembersWS.Members
Dim Member As New MembersWS.ModifiedUser
ws.Credentials = System.Net.CredentialCache.DefaultCredentials()
Member = ws.ValidateUser(Login1.UserName, Login1.Password)
End Sub
オブジェクトがWebサービスで作成されると、のModifiedUser
すべてのプロパティMembershipUser
と新しいクラスのプロパティが含まれます。
私の例では、ValidateUser
関数はユーザーを検証し、追加のプロパティを追加します。
Public Function ValidateUser(ByVal UserName As String, ByVal Password As String) As ModifiedUser
Dim BaseUser As MembershipUser = Membership.Provider.GetUser(UserName, False)
Dim Member As New ModifiedUser
If Membership.Provider.ValidateUser(UserName, Password) = True Then
Member = New ModifiedUser(BaseUser.ProviderName, BaseUser.UserName, BaseUser.ProviderUserKey, BaseUser.Email, BaseUser.PasswordQuestion, BaseUser.Comment, BaseUser.IsApproved, BaseUser.IsLockedOut, BaseUser.CreationDate, BaseUser.LastLoginDate, BaseUser.LastActivityDate, BaseUser.LastPasswordChangedDate, BaseUser.LastLockoutDate, 0, "", "", "", "", True)
' ... (Set new property values)
End if
Return Member
End Function
にMember
が返されるLogin1_Authenticate
と、読み取り専用プロパティは、Webサービスから返されるオブジェクトに含まれている間、オブジェクトから削除されます。
Webサービスのreference.vb
ファイルでは、自動生成されたコードにMembershipUser
、関連するゲッターとセッターを持つ更新可能なプロパティのみを含む部分的なクラスが含まれています。
Partial Public Class MembershipUser
Private emailField As String
Private commentField As String
Private isApprovedField As Boolean
Private lastLoginDateField As Date
Private lastActivityDateField As Date
返されたオブジェクトに読み取り専用プロパティを含める方法を誰かに教えてもらえれば、本当にありがたいです。