BetterMembership


Better implementation of ExtendedMembershipProvider with compatibility for MembershipProvider

Compatibility

pros & cons

The BetterMembership.Net providers use the database schema from SimpleMemberhipProviders which are not naturally compatible with the legacy MembershipProvider interfaces, therefore password retrieval via question & answer is not supported, and none of the APIs for querying inactive/online state are supported.

Extended Implementation

The BetterMembership.Net library extends SimpleMembershipProvider and implements the following unsupported methods. This providers back support for the MembershipProvider interface from which it extends.

  • CreateUser
  • GetUser+
  • GetUserNameByEmail
  • FindUserByUserName
  • FindUserByEmail
  • GetAllUsers
  • FindUsersByName
  • FindUsersByEmail
  • UnlockUser
  • ResetPassword

+ The userIsOnline flag is ignored, but may be implemented in the future.

MembershipUser

The library maps properties on the legacy MembershipUser instance as follows.

  • CreationDate -> WebPages_Membership.CreatedDate
  • IsApproved -> WebPages_Membership.IsConfirmed
  • LastPasswordChangedDate -> WebPages_Membership.PasswordChangedDate
  • IsLockedOut -> Based on configured maxInvalidPasswordAttempts/passwordAttemptWindow
  • UserProviderKey -> Configured userIdColumn on user table
  • Username -> Configured userNameColumn on user table
  • Email -> Configured userEmailColumn on user table

MembershipProvider Limitations

The following MembershipProvider methods are not supported due to incompatibilities with the older APIs and database schema.

  • GetPassword
  • GetNumberOfUsersOnline
  • ChangePasswordQuestionAndAnswer
  • ResetPassword+

+ The method is supported when specifying empty/null answer.

MembershipUser Limitations

The following MembershipUser properties are not supported and will provide default values of null, false, or DateTime.MinValue.

  • Comment
  • IsOnline
  • LastLoginDate
  • LastActivityDate
  • LastLockoutDate
  • PaswordQuestion
  • PaswordAnswer

ProfileProvider Limitations

The following ProfileProvider methods are not supported, due to incompatibilities with the older APIs and database schema.

  • GetAllProfiles+
  • DeleteInactiveProfiles
  • GetAllInactiveProfiles
  • GetNumberOfInactiveProfiles
  • FindInactiveProfilesByUserName
  • FindProfilesByUserName+

+ The method is supported when specifying ProfileAuthenticationOption.All.