diff --git a/src/Umbraco.Abstractions/Security/IPasswordHasher.cs b/src/Umbraco.Abstractions/Security/IPasswordHasher.cs
new file mode 100644
index 0000000000..2195570605
--- /dev/null
+++ b/src/Umbraco.Abstractions/Security/IPasswordHasher.cs
@@ -0,0 +1,12 @@
+namespace Umbraco.Core.Security
+{
+ public interface IPasswordHasher
+ {
+ ///
+ /// Hashes a password
+ ///
+ /// The password.
+ /// The password hashed.
+ string HashPassword(string password);
+ }
+}
diff --git a/src/Umbraco.Core/ContentExtensions.cs b/src/Umbraco.Core/ContentExtensions.cs
index 4fd309f134..29520d0b20 100644
--- a/src/Umbraco.Core/ContentExtensions.cs
+++ b/src/Umbraco.Core/ContentExtensions.cs
@@ -54,29 +54,7 @@ namespace Umbraco.Core
#endregion
- ///
- /// Removes characters that are not valid XML characters from all entity properties
- /// of type string. See: http://stackoverflow.com/a/961504/5018
- ///
- ///
- ///
- /// If this is not done then the xml cache can get corrupt and it will throw YSODs upon reading it.
- ///
- ///
- public static void SanitizeEntityPropertiesForXmlStorage(this IContentBase entity)
- {
- entity.Name = entity.Name.ToValidXmlString();
- foreach (var property in entity.Properties)
- {
- foreach (var propertyValue in property.Values)
- {
- if (propertyValue.EditedValue is string editString)
- propertyValue.EditedValue = editString.ToValidXmlString();
- if (propertyValue.PublishedValue is string publishedString)
- propertyValue.PublishedValue = publishedString.ToValidXmlString();
- }
- }
- }
+
///
/// Checks if the IContentBase has children
diff --git a/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs b/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs
index 48a25c0e2b..4af6d7accd 100644
--- a/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs
+++ b/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs
@@ -8,7 +8,7 @@ namespace Umbraco.Core.Security
///
///
///
- public interface IUserAwarePasswordHasher : IPasswordHasher
+ public interface IUserAwarePasswordHasher : Microsoft.AspNet.Identity.IPasswordHasher
where TUser : class, IUser
where TKey : IEquatable
{
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 3a4c32cf59..7cc8ebd928 100755
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -126,10 +126,6 @@
Constants.cs
-->
-
-
-
-
@@ -147,7 +143,6 @@
-
@@ -177,7 +172,6 @@
-
@@ -194,18 +188,11 @@
-
-
-
-
-
-
-
@@ -268,8 +255,6 @@
-
-
@@ -402,51 +387,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -524,5 +464,10 @@
Umbraco.Infrastructure
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Umbraco.Core/Cache/DefaultRepositoryCachePolicy.cs b/src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs
similarity index 100%
rename from src/Umbraco.Core/Cache/DefaultRepositoryCachePolicy.cs
rename to src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs
diff --git a/src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicy.cs b/src/Umbraco.Infrastructure/Cache/FullDataSetRepositoryCachePolicy.cs
similarity index 100%
rename from src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicy.cs
rename to src/Umbraco.Infrastructure/Cache/FullDataSetRepositoryCachePolicy.cs
diff --git a/src/Umbraco.Core/Cache/RepositoryCachePolicyBase.cs b/src/Umbraco.Infrastructure/Cache/RepositoryCachePolicyBase.cs
similarity index 100%
rename from src/Umbraco.Core/Cache/RepositoryCachePolicyBase.cs
rename to src/Umbraco.Infrastructure/Cache/RepositoryCachePolicyBase.cs
diff --git a/src/Umbraco.Core/Cache/SingleItemsOnlyRepositoryCachePolicy.cs b/src/Umbraco.Infrastructure/Cache/SingleItemsOnlyRepositoryCachePolicy.cs
similarity index 100%
rename from src/Umbraco.Core/Cache/SingleItemsOnlyRepositoryCachePolicy.cs
rename to src/Umbraco.Infrastructure/Cache/SingleItemsOnlyRepositoryCachePolicy.cs
diff --git a/src/Umbraco.Infrastructure/ContentExtensions.cs b/src/Umbraco.Infrastructure/ContentExtensions.cs
new file mode 100644
index 0000000000..6bff40e306
--- /dev/null
+++ b/src/Umbraco.Infrastructure/ContentExtensions.cs
@@ -0,0 +1,31 @@
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core
+{
+ public static class ContentExtensions
+ {
+ ///
+ /// Removes characters that are not valid XML characters from all entity properties
+ /// of type string. See: http://stackoverflow.com/a/961504/5018
+ ///
+ ///
+ ///
+ /// If this is not done then the xml cache can get corrupt and it will throw YSODs upon reading it.
+ ///
+ ///
+ public static void SanitizeEntityPropertiesForXmlStorage(this IContentBase entity)
+ {
+ entity.Name = entity.Name.ToValidXmlString();
+ foreach (var property in entity.Properties)
+ {
+ foreach (var propertyValue in property.Values)
+ {
+ if (propertyValue.EditedValue is string editString)
+ propertyValue.EditedValue = editString.ToValidXmlString();
+ if (propertyValue.PublishedValue is string publishedString)
+ propertyValue.PublishedValue = publishedString.ToValidXmlString();
+ }
+ }
+ }
+ }
+}
diff --git a/src/Umbraco.Core/ConventionsHelper.cs b/src/Umbraco.Infrastructure/ConventionsHelper.cs
similarity index 100%
rename from src/Umbraco.Core/ConventionsHelper.cs
rename to src/Umbraco.Infrastructure/ConventionsHelper.cs
diff --git a/src/Umbraco.Core/Models/Editors/UmbracoEntityReference.cs b/src/Umbraco.Infrastructure/Models/Editors/UmbracoEntityReference.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Editors/UmbracoEntityReference.cs
rename to src/Umbraco.Infrastructure/Models/Editors/UmbracoEntityReference.cs
diff --git a/src/Umbraco.Core/Models/PathValidationExtensions.cs b/src/Umbraco.Infrastructure/Models/PathValidationExtensions.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PathValidationExtensions.cs
rename to src/Umbraco.Infrastructure/Models/PathValidationExtensions.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/AuditEntryRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditEntryRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/AuditEntryRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditEntryRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/AuditRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/AuditRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ConsentRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ConsentRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ConsentRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ConsentRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs
similarity index 99%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentRepositoryBase.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs
index e038dd33b2..90f8d454ac 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentRepositoryBase.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs
@@ -30,7 +30,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
public static bool ThrowOnWarning = false;
}
- internal abstract class ContentRepositoryBase : NPocoRepositoryBase, IContentRepository
+ public abstract class ContentRepositoryBase : NPocoRepositoryBase, IContentRepository
where TEntity : class, IContentBase
where TRepository : class, IRepository
{
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeContainerRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeContainerRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DictionaryRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DictionaryRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs
similarity index 99%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs
index c6041e8f8c..a05e8cfe7f 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs
@@ -21,7 +21,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
/// Represents a repository for doing CRUD operations for .
///
- internal class DocumentRepository : ContentRepositoryBase, IDocumentRepository
+ public class DocumentRepository : ContentRepositoryBase, IDocumentRepository
{
private readonly IContentTypeRepository _contentTypeRepository;
private readonly ITemplateRepository _templateRepository;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DomainRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DomainRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/DomainRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DomainRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/EntityContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/EntityContainerRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityContainerRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/EntityRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/EntityRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs
similarity index 99%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs
index bb1bd29a8a..6d6a654d4e 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Microsoft.AspNet.Identity;
using NPoco;
using Umbraco.Core.Cache;
using Umbraco.Core.Logging;
@@ -152,7 +151,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
protected override void PersistUpdatedItem(IIdentityUserLogin entity)
{
entity.UpdatingEntity();
-
+
var dto = ExternalLoginFactory.BuildDto(entity);
Database.Update(dto);
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/FileRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/FileRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/FileRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/FileRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MacroRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MacroRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MacroRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MacroRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaRepository.cs
similarity index 99%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MediaRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaRepository.cs
index c813bdaa5a..a48012ac26 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaRepository.cs
@@ -21,7 +21,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
/// Represents a repository for doing CRUD operations for
///
- internal class MediaRepository : ContentRepositoryBase, IMediaRepository
+ public class MediaRepository : ContentRepositoryBase, IMediaRepository
{
private readonly IMediaTypeRepository _mediaTypeRepository;
private readonly ITagRepository _tagRepository;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberGroupRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberGroupRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MemberGroupRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberGroupRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs
similarity index 98%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs
index 5bf8ce4419..64266f9df8 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Microsoft.AspNet.Identity;
using NPoco;
using Umbraco.Core.Cache;
using Umbraco.Core.Logging;
@@ -12,6 +11,7 @@ using Umbraco.Core.Persistence.Factories;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Scoping;
+using Umbraco.Core.Security;
using Umbraco.Core.Services;
using static Umbraco.Core.Persistence.SqlExtensionsStatics;
@@ -20,14 +20,16 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
/// Represents a repository for doing CRUD operations for
///
- internal class MemberRepository : ContentRepositoryBase, IMemberRepository
+ public class MemberRepository : ContentRepositoryBase, IMemberRepository
{
private readonly IMemberTypeRepository _memberTypeRepository;
private readonly ITagRepository _tagRepository;
+ private readonly IPasswordHasher _passwordHasher;
private readonly IMemberGroupRepository _memberGroupRepository;
public MemberRepository(IScopeAccessor scopeAccessor, AppCaches cache, ILogger logger,
IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagRepository tagRepository, ILanguageRepository languageRepository, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository,
+ IPasswordHasher passwordHasher,
Lazy propertyEditors,
DataValueReferenceFactoryCollection dataValueReferenceFactories,
IDataTypeService dataTypeService)
@@ -35,6 +37,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
{
_memberTypeRepository = memberTypeRepository ?? throw new ArgumentNullException(nameof(memberTypeRepository));
_tagRepository = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository));
+ _passwordHasher = passwordHasher;
_memberGroupRepository = memberGroupRepository;
}
@@ -308,8 +311,8 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
// this will hash the guid with a salt so should be nicely random
if (entity.RawPasswordValue.IsNullOrWhiteSpace())
{
- var aspHasher = new PasswordHasher();
- dto.Password = Constants.Security.EmptyPasswordPrefix + aspHasher.HashPassword(Guid.NewGuid().ToString("N"));
+
+ dto.Password = Constants.Security.EmptyPasswordPrefix + _passwordHasher.HashPassword(Guid.NewGuid().ToString("N"));
entity.RawPasswordValue = dto.Password;
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/MemberTypeRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberTypeRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/NPocoRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NPocoRepositoryBase.cs
similarity index 96%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/NPocoRepositoryBase.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NPocoRepositoryBase.cs
index 23236ec9f0..d72eb9de9b 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/NPocoRepositoryBase.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NPocoRepositoryBase.cs
@@ -15,7 +15,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
///
///
- internal abstract class NPocoRepositoryBase : RepositoryBase
+ public abstract class NPocoRepositoryBase : RepositoryBase
where TEntity : class, IEntity
{
///
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/NotificationsRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NotificationsRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/NotificationsRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NotificationsRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewMacroRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewMacroRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewMacroRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewMacroRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PermissionRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PermissionRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/PermissionRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PermissionRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PublicAccessRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PublicAccessRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/PublicAccessRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PublicAccessRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/QueryType.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/QueryType.cs
similarity index 95%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/QueryType.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/QueryType.cs
index 8b7ab9285a..7b44bd3955 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/QueryType.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/QueryType.cs
@@ -3,7 +3,7 @@
///
/// Specifies the type of base query.
///
- internal enum QueryType
+ public enum QueryType
{
///
/// Get one single complete item.
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RedirectUrlRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RedirectUrlRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/RedirectUrlRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RedirectUrlRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RelationRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/RelationRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RelationTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/RelationTypeRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
similarity index 98%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
index 69e4db5940..e8397ba22a 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs
@@ -14,7 +14,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
/// The type of the entity managed by this repository.
/// The type of the entity's unique identifier.
- internal abstract class RepositoryBase : IReadWriteQueryRepository
+ public abstract class RepositoryBase : IReadWriteQueryRepository
where TEntity : class, IEntity
{
private IRepositoryCachePolicy _cachePolicy;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryCacheKeys.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryCacheKeys.cs
similarity index 92%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryCacheKeys.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryCacheKeys.cs
index 09a7c021f8..693656eb65 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryCacheKeys.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryCacheKeys.cs
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
/// Provides cache keys for repositories.
///
- internal static class RepositoryCacheKeys
+ public static class RepositoryCacheKeys
{
private static readonly Dictionary Keys = new Dictionary();
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ScriptRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ScriptRepository.cs
similarity index 94%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ScriptRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ScriptRepository.cs
index 22c3ff3067..498cf51432 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/ScriptRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ScriptRepository.cs
@@ -2,8 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using Umbraco.Core.Composing;
-using Umbraco.Core.Configuration.UmbracoSettings;
+using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
using Umbraco.Core.Models;
@@ -15,11 +14,13 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
internal class ScriptRepository : FileRepository, IScriptRepository
{
private readonly IIOHelper _ioHelper;
+ private readonly IGlobalSettings _globalSettings;
- public ScriptRepository(IFileSystems fileSystems, IIOHelper ioHelper)
+ public ScriptRepository(IFileSystems fileSystems, IIOHelper ioHelper, IGlobalSettings globalSettings)
: base(fileSystems.ScriptsFileSystem)
{
_ioHelper = ioHelper ?? throw new ArgumentNullException(nameof(ioHelper));
+ _globalSettings = globalSettings;
}
#region Implementation of IRepository
@@ -104,7 +105,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
}
// validate path & extension
- var validDir = Current.Configs.Global().UmbracoScriptsPath;
+ var validDir = _globalSettings.UmbracoScriptsPath;
var isValidPath = _ioHelper.VerifyEditPath(fullPath, validDir);
var validExts = new[] {"js"};
var isValidExtension = _ioHelper.VerifyFileExtension(script.Path, validExts);
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ServerRegistrationRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ServerRegistrationRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/SimilarNodeName.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimilarNodeName.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/SimilarNodeName.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimilarNodeName.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/SimpleGetRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimpleGetRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/SimpleGetRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimpleGetRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/StylesheetRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/StylesheetRepository.cs
similarity index 95%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/StylesheetRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/StylesheetRepository.cs
index dc60c332cd..c1fb5c3159 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/StylesheetRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/StylesheetRepository.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using Umbraco.Core.Composing;
+using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
using Umbraco.Core.Models;
@@ -13,11 +13,13 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
internal class StylesheetRepository : FileRepository, IStylesheetRepository
{
private readonly IIOHelper _ioHelper;
+ private readonly IGlobalSettings _globalSettings;
- public StylesheetRepository(IFileSystems fileSystems, IIOHelper ioHelper)
+ public StylesheetRepository(IFileSystems fileSystems, IIOHelper ioHelper, IGlobalSettings globalSettings)
: base(fileSystems.StylesheetsFileSystem)
{
_ioHelper = ioHelper;
+ _globalSettings = globalSettings;
}
#region Overrides of FileRepository
@@ -121,7 +123,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
}
// validate path and extension
- var validDir = Current.Configs.Global().UmbracoCssPath;
+ var validDir = _globalSettings.UmbracoCssPath;
var isValidPath = _ioHelper.VerifyEditPath(fullPath, validDir);
var isValidExtension = _ioHelper.VerifyFileExtension(stylesheet.Path, ValidExtensions);
return isValidPath && isValidExtension;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/TagRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/TagRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/TemplateRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs
similarity index 99%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/TemplateRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs
index a26b818ca9..3db94b026e 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/TemplateRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs
@@ -5,7 +5,6 @@ using System.Linq;
using System.Text;
using NPoco;
using Umbraco.Core.Cache;
-using Umbraco.Core.Composing;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
@@ -635,7 +634,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
private void EnsureValidAlias(ITemplate template)
{
//ensure unique alias
- template.Alias = template.Alias.ToCleanString(CleanStringType.UnderscoreAlias);
+ template.Alias = template.Alias.ToCleanString(_shortStringHelper, CleanStringType.UnderscoreAlias);
if (template.Alias.Length > 100)
template.Alias = template.Alias.Substring(0, 95);
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/TupleExtensions.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TupleExtensions.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/TupleExtensions.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TupleExtensions.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/UserGroupRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs
similarity index 99%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/UserGroupRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs
index b8e4a67d78..1f0ab0cbe7 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/UserGroupRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using NPoco;
using Umbraco.Core.Cache;
-using Umbraco.Core.Exceptions;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Entities;
@@ -19,7 +18,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
///
/// Represents the UserGroupRepository for doing CRUD operations for
///
- internal class UserGroupRepository : NPocoRepositoryBase, IUserGroupRepository
+ public class UserGroupRepository : NPocoRepositoryBase, IUserGroupRepository
{
private readonly IShortStringHelper _shortStringHelper;
private readonly UserGroupWithUsersRepository _userGroupWithUsersRepository;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs
similarity index 100%
rename from src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs
rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs
diff --git a/src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollection.cs b/src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollection.cs
similarity index 100%
rename from src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollection.cs
rename to src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollection.cs
diff --git a/src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs b/src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs
rename to src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs
diff --git a/src/Umbraco.Core/PropertyEditors/IDataValueReference.cs b/src/Umbraco.Infrastructure/PropertyEditors/IDataValueReference.cs
similarity index 100%
rename from src/Umbraco.Core/PropertyEditors/IDataValueReference.cs
rename to src/Umbraco.Infrastructure/PropertyEditors/IDataValueReference.cs
diff --git a/src/Umbraco.Core/PropertyEditors/IDataValueReferenceFactory.cs b/src/Umbraco.Infrastructure/PropertyEditors/IDataValueReferenceFactory.cs
similarity index 100%
rename from src/Umbraco.Core/PropertyEditors/IDataValueReferenceFactory.cs
rename to src/Umbraco.Infrastructure/PropertyEditors/IDataValueReferenceFactory.cs
diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
index a1bca7fc89..b8c823f59e 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
@@ -41,7 +41,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var relationRepository = new RelationRepository(accessor, Logger, relationTypeRepository, entityRepository);
var propertyEditors = new Lazy(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty())));
var dataValueReferences = new DataValueReferenceFactoryCollection(Enumerable.Empty());
- var repository = new MemberRepository(accessor, AppCaches.Disabled, Logger, memberTypeRepository, memberGroupRepository, tagRepo, Mock.Of(), relationRepository, relationTypeRepository, propertyEditors, dataValueReferences, DataTypeService);
+ var repository = new MemberRepository(accessor, AppCaches.Disabled, Logger, memberTypeRepository, memberGroupRepository, tagRepo, Mock.Of(), relationRepository, relationTypeRepository, PasswordHasher, propertyEditors, dataValueReferences, DataTypeService);
return repository;
}
diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs
index 8d7a166f26..a319f8d63b 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs
@@ -40,7 +40,7 @@ namespace Umbraco.Tests.Persistence.Repositories
private IScriptRepository CreateRepository()
{
- return new ScriptRepository(_fileSystems, IOHelper);
+ return new ScriptRepository(_fileSystems, IOHelper, TestObjects.GetGlobalSettings());
}
protected override void Compose()
diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs
index c2fbb63442..70e7b664a1 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs
@@ -37,7 +37,7 @@ namespace Umbraco.Tests.Persistence.Repositories
private IStylesheetRepository CreateRepository()
{
- return new StylesheetRepository(_fileSystems, IOHelper);
+ return new StylesheetRepository(_fileSystems, IOHelper, TestObjects.GetGlobalSettings());
}
[Test]
diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
index 5afd937f84..ea13a25bbd 100644
--- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
+++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
@@ -52,6 +52,7 @@ using Umbraco.Web.Templates;
using Umbraco.Web.PropertyEditors;
using Umbraco.Core.Dictionary;
using Umbraco.Core.Persistence.Repositories;
+using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Net;
@@ -114,6 +115,7 @@ namespace Umbraco.Tests.Testing
protected IIOHelper IOHelper { get; private set; }
protected IDataTypeService DataTypeService => Factory.GetInstance();
+ protected IPasswordHasher PasswordHasher => Factory.GetInstance();
protected Lazy PropertyEditorCollection => new Lazy(() => Factory.GetInstance());
protected ILocalizationService LocalizationService => Factory.GetInstance();
protected ILocalizedTextService LocalizedTextService { get; private set; }
@@ -193,6 +195,7 @@ namespace Umbraco.Tests.Testing
Composition.RegisterUnique(hostingEnvironment);
Composition.RegisterUnique(backOfficeInfo);
Composition.RegisterUnique(ipResolver);
+ Composition.RegisterUnique();
TestObjects = new TestObjects(register);
Compose();
diff --git a/src/Umbraco.Web/AspNetBackOfficeInfo.cs b/src/Umbraco.Web/Net/AspNetBackOfficeInfo.cs
similarity index 100%
rename from src/Umbraco.Web/AspNetBackOfficeInfo.cs
rename to src/Umbraco.Web/Net/AspNetBackOfficeInfo.cs
diff --git a/src/Umbraco.Web/AspNetHttpContextAccessor.cs b/src/Umbraco.Web/Net/AspNetHttpContextAccessor.cs
similarity index 100%
rename from src/Umbraco.Web/AspNetHttpContextAccessor.cs
rename to src/Umbraco.Web/Net/AspNetHttpContextAccessor.cs
diff --git a/src/Umbraco.Web/AspNetIpResolver.cs b/src/Umbraco.Web/Net/AspNetIpResolver.cs
similarity index 100%
rename from src/Umbraco.Web/AspNetIpResolver.cs
rename to src/Umbraco.Web/Net/AspNetIpResolver.cs
diff --git a/src/Umbraco.Web/Net/AspNetPasswordHasher.cs b/src/Umbraco.Web/Net/AspNetPasswordHasher.cs
new file mode 100644
index 0000000000..0f9ff1981c
--- /dev/null
+++ b/src/Umbraco.Web/Net/AspNetPasswordHasher.cs
@@ -0,0 +1,20 @@
+using Microsoft.AspNet.Identity;
+using IPasswordHasher = Umbraco.Core.Security.IPasswordHasher;
+
+namespace Umbraco.Web
+{
+ public class AspNetPasswordHasher : IPasswordHasher
+ {
+ private PasswordHasher _underlyingHasher;
+
+ public AspNetPasswordHasher()
+ {
+ _underlyingHasher = new PasswordHasher();
+ }
+
+ public string HashPassword(string password)
+ {
+ return _underlyingHasher.HashPassword(password);
+ }
+ }
+}
diff --git a/src/Umbraco.Web/AspNetSessionIdResolver.cs b/src/Umbraco.Web/Net/AspNetSessionIdResolver.cs
similarity index 100%
rename from src/Umbraco.Web/AspNetSessionIdResolver.cs
rename to src/Umbraco.Web/Net/AspNetSessionIdResolver.cs
diff --git a/src/Umbraco.Web/Runtime/WebInitialComposer.cs b/src/Umbraco.Web/Runtime/WebInitialComposer.cs
index fb7ba352b6..9b36012ca2 100644
--- a/src/Umbraco.Web/Runtime/WebInitialComposer.cs
+++ b/src/Umbraco.Web/Runtime/WebInitialComposer.cs
@@ -13,6 +13,7 @@ using Umbraco.Core.Migrations.PostMigrations;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.PropertyEditors.ValueConverters;
using Umbraco.Core.Runtime;
+using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Net;
using Umbraco.Web.Actions;
@@ -57,6 +58,7 @@ namespace Umbraco.Web.Runtime
composition.Register();
composition.Register();
composition.Register();
+ composition.Register();
composition.RegisterUnique(); // required for hybrid accessors
diff --git a/src/Umbraco.Web/Security/BackOfficeUserManager.cs b/src/Umbraco.Web/Security/BackOfficeUserManager.cs
index c644f5e428..688447e52a 100644
--- a/src/Umbraco.Web/Security/BackOfficeUserManager.cs
+++ b/src/Umbraco.Web/Security/BackOfficeUserManager.cs
@@ -1,7 +1,6 @@
using System;
using System.Security.Claims;
using System.Threading.Tasks;
-using System.Web;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin.Security.DataProtection;
@@ -13,6 +12,7 @@ using Umbraco.Core.Models.Identity;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Net;
+using IPasswordHasher = Microsoft.AspNet.Identity.IPasswordHasher;
namespace Umbraco.Web.Security
{
diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj
index 73694fbc28..d792ad84a3 100755
--- a/src/Umbraco.Web/Umbraco.Web.csproj
+++ b/src/Umbraco.Web/Umbraco.Web.csproj
@@ -130,9 +130,6 @@
-
-
-
@@ -174,7 +171,6 @@
-
@@ -254,6 +250,11 @@
+
+
+
+
+