diff --git a/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs b/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs index 5a1514d130..03c9616485 100644 --- a/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs +++ b/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs @@ -458,6 +458,21 @@ namespace Umbraco.Core.ObjectResolution } } + /// + /// Gets the types in the collection of types. + /// + /// The types in the collection of types. + /// Returns an enumeration, the list cannot be modified. + public virtual IEnumerable GetTypes() + { + Type[] types; + using (new ReadLock(_lock)) + { + types = _instanceTypes.ToArray(); + } + return types; + } + /// /// Returns a value indicating whether the specified type is already in the collection of types. /// diff --git a/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs b/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs index 811fc6be52..f423d95fbd 100644 --- a/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs +++ b/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs @@ -750,9 +750,11 @@ namespace Umbraco.Web.Security.Providers private bool IsEmaiValid(string email) { - var validator = new EmailAddressAttribute(); - - return validator.IsValid(email); + const string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" + + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?