Backports fixes for legacy encoding checks and to not do any db lookups for the new membership providers and also ensures the legacy membership provider doesn't do any db lookups on init.
This commit is contained in:
@@ -40,6 +40,8 @@ namespace Umbraco.Web.Security.Providers
|
||||
}
|
||||
|
||||
private string _defaultMemberTypeAlias = "Member";
|
||||
private volatile bool _hasDefaultMember = false;
|
||||
private static readonly object Locker = new object();
|
||||
|
||||
public override string ProviderName
|
||||
{
|
||||
@@ -77,20 +79,35 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (config["defaultMemberTypeAlias"] != null)
|
||||
{
|
||||
_defaultMemberTypeAlias = config["defaultMemberTypeAlias"];
|
||||
}
|
||||
else
|
||||
{
|
||||
_defaultMemberTypeAlias = MemberService.GetDefaultMemberType();
|
||||
if (_defaultMemberTypeAlias.IsNullOrWhiteSpace())
|
||||
{
|
||||
throw new ProviderException("No default MemberType alias is specified in the web.config string. Please add a 'defaultMemberTypeAlias' to the add element in the provider declaration in web.config");
|
||||
throw new ProviderException("No default user type alias is specified in the web.config string. Please add a 'defaultUserTypeAlias' to the add element in the provider declaration in web.config");
|
||||
}
|
||||
_hasDefaultMember = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override string DefaultMemberTypeAlias
|
||||
{
|
||||
get { return _defaultMemberTypeAlias; }
|
||||
get
|
||||
{
|
||||
if (_hasDefaultMember == false)
|
||||
{
|
||||
lock (Locker)
|
||||
{
|
||||
if (_hasDefaultMember == false)
|
||||
{
|
||||
_defaultMemberTypeAlias = MemberService.GetDefaultMemberType();
|
||||
if (_defaultMemberTypeAlias.IsNullOrWhiteSpace())
|
||||
{
|
||||
throw new ProviderException("No default user type alias is specified in the web.config string. Please add a 'defaultUserTypeAlias' to the add element in the provider declaration in web.config");
|
||||
}
|
||||
_hasDefaultMember = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return _defaultMemberTypeAlias;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,20 +15,22 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </summary>
|
||||
public class UsersMembershipProvider : UmbracoMembershipProvider<IMembershipUserService, IUser>, IUsersMembershipProvider
|
||||
{
|
||||
|
||||
|
||||
public UsersMembershipProvider()
|
||||
: this(ApplicationContext.Current.Services.UserService)
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
public UsersMembershipProvider(IMembershipMemberService<IUser> memberService)
|
||||
: base(memberService)
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
private string _defaultMemberTypeAlias = "writer";
|
||||
private volatile bool _hasDefaultMember = false;
|
||||
private static readonly object Locker = new object();
|
||||
|
||||
public override string ProviderName
|
||||
public override string ProviderName
|
||||
{
|
||||
get { return Constants.Conventions.User.UmbracoUsersProviderName; }
|
||||
}
|
||||
@@ -44,7 +46,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
protected override MembershipUser ConvertToMembershipUser(IUser entity)
|
||||
{
|
||||
//the provider user key is always the int id
|
||||
return entity.AsConcreteMembershipUser(Name);
|
||||
return entity.AsConcreteMembershipUser(Name);
|
||||
}
|
||||
|
||||
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
|
||||
@@ -55,20 +57,35 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (config["defaultUserTypeAlias"] != null)
|
||||
{
|
||||
_defaultMemberTypeAlias = config["defaultUserTypeAlias"];
|
||||
}
|
||||
else
|
||||
{
|
||||
var defaultFromService = MemberService.GetDefaultMemberType();
|
||||
if (defaultFromService.IsNullOrWhiteSpace())
|
||||
if (_defaultMemberTypeAlias.IsNullOrWhiteSpace())
|
||||
{
|
||||
throw new ProviderException("No default user type alias is specified in the web.config string. Please add a 'defaultUserTypeAlias' to the add element in the provider declaration in web.config");
|
||||
}
|
||||
}
|
||||
}
|
||||
_hasDefaultMember = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override string DefaultMemberTypeAlias
|
||||
{
|
||||
get { return _defaultMemberTypeAlias; }
|
||||
get
|
||||
{
|
||||
if (_hasDefaultMember == false)
|
||||
{
|
||||
lock (Locker)
|
||||
{
|
||||
if (_hasDefaultMember == false)
|
||||
{
|
||||
_defaultMemberTypeAlias = MemberService.GetDefaultMemberType();
|
||||
if (_defaultMemberTypeAlias.IsNullOrWhiteSpace())
|
||||
{
|
||||
throw new ProviderException("No default user type alias is specified in the web.config string. Please add a 'defaultUserTypeAlias' to the add element in the provider declaration in web.config");
|
||||
}
|
||||
_hasDefaultMember = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return _defaultMemberTypeAlias;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user