using System.Text;
using System.Web.Security;
namespace Umbraco.Core.Security
{
///
/// A base membership provider class for umbraco providers
///
public abstract class UmbracoMembershipProviderBase : MembershipProviderBase
{
public abstract string DefaultMemberTypeAlias { get; }
///
/// Adds a new membership user to the data source.
///
/// The user name for the new user.
/// The password for the new user.
/// The e-mail address for the new user.
/// The password question for the new user.
/// The password answer for the new user
/// Whether or not the new user is approved to be validated.
/// The unique identifier from the membership data source for the user.
/// A enumeration value indicating whether the user was created successfully.
///
/// A object populated with the information for the newly created user.
///
protected sealed override MembershipUser PerformCreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
return PerformCreateUser(DefaultMemberTypeAlias, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
}
///
/// Adds a new membership user to the data source.
///
/// The member type alias to use when creating the member
/// The user name for the new user.
/// The password for the new user.
/// The e-mail address for the new user.
/// The password question for the new user.
/// The password answer for the new user
/// Whether or not the new user is approved to be validated.
/// The unique identifier from the membership data source for the user.
/// A enumeration value indicating whether the user was created successfully.
///
/// A object populated with the information for the newly created user.
///
public MembershipUser CreateUser(string memberTypeAlias, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
//do the base validation first
var valStatus = ValidateNewUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
if (valStatus != MembershipCreateStatus.Success)
{
status = valStatus;
return null;
}
return PerformCreateUser(memberTypeAlias, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
}
///
/// Adds a new membership user to the data source.
///
/// The member type alias to use when creating the member
/// The user name for the new user.
/// The password for the new user.
/// The e-mail address for the new user.
/// The password question for the new user.
/// The password answer for the new user
/// Whether or not the new user is approved to be validated.
/// The unique identifier from the membership data source for the user.
/// A enumeration value indicating whether the user was created successfully.
///
/// A object populated with the information for the newly created user.
///
protected abstract MembershipUser PerformCreateUser(string memberTypeAlias, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status);
public override string ToString()
{
var result = base.ToString();
var sb = new StringBuilder(result);
sb.AppendLine("DefaultMemberTypeAlias=" + DefaultMemberTypeAlias);
return sb.ToString();
}
}
}