diff --git a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs
index 7bc7ef29a..e11486a81 100644
--- a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs
+++ b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs
@@ -270,46 +270,4 @@ namespace Orchard.Users.Controllers {
#endregion
}
-
- public interface IMembershipServiceShim {
- int MinPasswordLength { get; }
-
- bool ValidateUser(string userName, string password);
- MembershipCreateStatus CreateUser(string userName, string password, string email);
- bool ChangePassword(string userName, string oldPassword, string newPassword);
- }
-
- public class AccountMembershipService : IMembershipServiceShim {
- private readonly MembershipProvider _provider;
-
- public AccountMembershipService()
- : this(null) { }
-
- public AccountMembershipService(MembershipProvider provider) {
- _provider = provider ?? Membership.Provider;
- }
-
- #region IMembershipService Members
-
- public int MinPasswordLength {
- get { return _provider.MinRequiredPasswordLength; }
- }
-
- public bool ValidateUser(string userName, string password) {
- return _provider.ValidateUser(userName, password);
- }
-
- public MembershipCreateStatus CreateUser(string userName, string password, string email) {
- MembershipCreateStatus status;
- _provider.CreateUser(userName, password, email, null, null, true, null, out status);
- return status;
- }
-
- public bool ChangePassword(string userName, string oldPassword, string newPassword) {
- var currentUser = _provider.GetUser(userName, true /* userIsOnline */);
- return currentUser.ChangePassword(oldPassword, newPassword);
- }
-
- #endregion
- }
}
\ No newline at end of file
diff --git a/src/Orchard.Web/Web.config b/src/Orchard.Web/Web.config
index df511b385..20f62d942 100644
--- a/src/Orchard.Web/Web.config
+++ b/src/Orchard.Web/Web.config
@@ -10,15 +10,15 @@
-
-
-
-
-
-
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/src/Orchard/Environment/DefaultHostContainer.cs b/src/Orchard/Environment/DefaultHostContainer.cs
new file mode 100644
index 000000000..cd077abd5
--- /dev/null
+++ b/src/Orchard/Environment/DefaultHostContainer.cs
@@ -0,0 +1,15 @@
+using Autofac;
+
+namespace Orchard.Environment {
+ public class DefaultOrchardHostContainer : IOrchardHostContainer {
+ private readonly IContainer _container;
+
+ public DefaultOrchardHostContainer(IContainer container) {
+ _container = container;
+ }
+
+ public T Resolve() {
+ return _container.Resolve();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/DefaultOrchardHost.cs b/src/Orchard/Environment/DefaultOrchardHost.cs
index c8228b788..0e355ab19 100644
--- a/src/Orchard/Environment/DefaultOrchardHost.cs
+++ b/src/Orchard/Environment/DefaultOrchardHost.cs
@@ -17,14 +17,13 @@ using Orchard.Utility.Extensions;
namespace Orchard.Environment {
public class DefaultOrchardHost : IOrchardHost, IShellSettingsManagerEventHandler, IShellDescriptorManagerEventHandler {
private readonly ControllerBuilder _controllerBuilder;
-
private readonly IShellSettingsManager _shellSettingsManager;
private readonly IShellContextFactory _shellContextFactory;
private readonly IRunningShellTable _runningShellTable;
private readonly IProcessingEngine _processingEngine;
- private readonly IExtensionManager _extensionManager;
private readonly IExtensionLoaderCoordinator _extensionLoaderCoordinator;
private readonly ICacheManager _cacheManager;
+ private readonly object _syncLock = new object();
private IEnumerable _current;
@@ -33,18 +32,18 @@ namespace Orchard.Environment {
IShellContextFactory shellContextFactory,
IRunningShellTable runningShellTable,
IProcessingEngine processingEngine,
- IExtensionManager extensionManager,
IExtensionLoaderCoordinator extensionLoaderCoordinator,
ICacheManager cacheManager,
ControllerBuilder controllerBuilder) {
+
_shellSettingsManager = shellSettingsManager;
_shellContextFactory = shellContextFactory;
_runningShellTable = runningShellTable;
_processingEngine = processingEngine;
- _extensionManager = extensionManager;
_extensionLoaderCoordinator = extensionLoaderCoordinator;
_cacheManager = cacheManager;
_controllerBuilder = controllerBuilder;
+
Logger = NullLogger.Instance;
}
@@ -82,7 +81,7 @@ namespace Orchard.Environment {
IEnumerable BuildCurrent() {
if (_current == null) {
- lock (this) {
+ lock (_syncLock) {
if (_current == null) {
SetupExtensions();
MonitorExtensions();
diff --git a/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionBuildProvider.cs b/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionBuildProvider.cs
deleted file mode 100644
index 94d5ec9c0..000000000
--- a/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionBuildProvider.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Web.Compilation;
-using Orchard.FileSystems.VirtualPath;
-
-namespace Orchard.Environment.Extensions.Compilers {
- public class CSharpExtensionBuildProvider : BuildProvider {
- private readonly CompilerType _codeCompilerType;
-
- public CSharpExtensionBuildProvider() {
- _codeCompilerType = GetDefaultCompilerTypeForLanguage("C#");
- }
-
- public override CompilerType CodeCompilerType { get { return _codeCompilerType; } }
-
- public override void GenerateCode(AssemblyBuilder assemblyBuilder) {
- //Debug.WriteLine(string.Format("BuildProvider for file \"{0}\"", this.VirtualPath));
-
- //TODO: It probably would be better to access the OrchardHost container
- // to resolve these dependencies.
- var virtualPathProvider = new DefaultVirtualPathProvider();
- var compiler = new CSharpProjectMediumTrustCompiler(virtualPathProvider);
-
- var aspNetAssemblyBuilder = new AspNetAssemblyBuilder(assemblyBuilder, this);
- compiler.CompileProject(this.VirtualPath, aspNetAssemblyBuilder);
- }
- }
-}
\ No newline at end of file
diff --git a/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionBuildProviderShim.cs b/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionBuildProviderShim.cs
new file mode 100644
index 000000000..c44cd2244
--- /dev/null
+++ b/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionBuildProviderShim.cs
@@ -0,0 +1,29 @@
+using System.Web.Compilation;
+
+namespace Orchard.Environment.Extensions.Compilers {
+ public class CSharpExtensionBuildProviderShim : BuildProvider, IShim {
+ private readonly CompilerType _codeCompilerType;
+
+ public CSharpExtensionBuildProviderShim() {
+ OrchardHostContainerRegistry.RegisterShim(this);
+
+ _codeCompilerType = GetDefaultCompilerTypeForLanguage("C#");
+ }
+
+ public IOrchardHostContainer HostContainer { get; set; }
+
+ public override CompilerType CodeCompilerType {
+ get {
+ return _codeCompilerType;
+ }
+ }
+
+ public override void GenerateCode(AssemblyBuilder assemblyBuilder) {
+ var context = new CompileExtensionContext {
+ VirtualPath = this.VirtualPath,
+ AssemblyBuilder = new AspNetAssemblyBuilder(assemblyBuilder, this)
+ };
+ HostContainer.Resolve().Compile(context);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionCompiler.cs b/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionDirectoryCompiler.cs
similarity index 92%
rename from src/Orchard/Environment/Extensions/Compilers/CSharpExtensionCompiler.cs
rename to src/Orchard/Environment/Extensions/Compilers/CSharpExtensionDirectoryCompiler.cs
index b267831db..d20a608e5 100644
--- a/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionCompiler.cs
+++ b/src/Orchard/Environment/Extensions/Compilers/CSharpExtensionDirectoryCompiler.cs
@@ -8,8 +8,9 @@ using System.Web.Compilation;
namespace Orchard.Environment.Extensions.Compilers {
///
/// Compile a C# extension into an assembly given a directory location
+ /// Note: Currently not used...
///
- public class CSharpExtensionCompiler {
+ public class CSharpExtensionDirectoryCompiler {
public CompilerResults CompileProject(string location) {
var codeProvider = CodeDomProvider.CreateProvider("cs");
diff --git a/src/Orchard/Environment/Extensions/Compilers/CSharpProjectFullTrustCompiler.cs b/src/Orchard/Environment/Extensions/Compilers/CSharpProjectFullTrustCompiler.cs
index 6ad1664ea..e7473ad51 100644
--- a/src/Orchard/Environment/Extensions/Compilers/CSharpProjectFullTrustCompiler.cs
+++ b/src/Orchard/Environment/Extensions/Compilers/CSharpProjectFullTrustCompiler.cs
@@ -7,6 +7,7 @@ using Orchard.FileSystems.VirtualPath;
namespace Orchard.Environment.Extensions.Compilers {
///
/// Compile a C# extension into an assembly given a directory location
+ /// Note: currently not used...
///
public class CSharpProjectFullTrustCompiler {
private readonly IVirtualPathProvider _virtualPathProvider;
@@ -26,7 +27,7 @@ namespace Orchard.Environment.Extensions.Compilers {
var directory = _virtualPathProvider.GetDirectoryName(virtualPath);
using (var stream = _virtualPathProvider.OpenFile(virtualPath)) {
- var descriptor = new CSharpProjectParser().Parse(stream);
+ var descriptor = new DefaultProjectFileParser().Parse(stream);
var references = GetReferencedAssembliesLocation();
var options = new CompilerParameters(references.ToArray());
diff --git a/src/Orchard/Environment/Extensions/Compilers/CompileExtensionContext.cs b/src/Orchard/Environment/Extensions/Compilers/CompileExtensionContext.cs
new file mode 100644
index 000000000..4a6bf13e2
--- /dev/null
+++ b/src/Orchard/Environment/Extensions/Compilers/CompileExtensionContext.cs
@@ -0,0 +1,6 @@
+namespace Orchard.Environment.Extensions.Compilers {
+ public class CompileExtensionContext {
+ public string VirtualPath { get; set; }
+ public IAssemblyBuilder AssemblyBuilder { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/Extensions/Compilers/CSharpProjectMediumTrustCompiler.cs b/src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs
similarity index 61%
rename from src/Orchard/Environment/Extensions/Compilers/CSharpProjectMediumTrustCompiler.cs
rename to src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs
index 902b42b40..8da6db268 100644
--- a/src/Orchard/Environment/Extensions/Compilers/CSharpProjectMediumTrustCompiler.cs
+++ b/src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs
@@ -2,28 +2,33 @@
using System.IO;
using System.Linq;
using Orchard.FileSystems.VirtualPath;
+using Orchard.Logging;
namespace Orchard.Environment.Extensions.Compilers {
///
/// Compile a C# extension into an assembly given a directory location
///
- public class CSharpProjectMediumTrustCompiler {
+ public class DefaultExtensionCompiler : IExtensionCompiler {
private readonly IVirtualPathProvider _virtualPathProvider;
+ private readonly IProjectFileParser _projectFileParser;
- public CSharpProjectMediumTrustCompiler(IVirtualPathProvider virtualPathProvider) {
+ public DefaultExtensionCompiler(IVirtualPathProvider virtualPathProvider, IProjectFileParser projectFileParser) {
_virtualPathProvider = virtualPathProvider;
+ _projectFileParser = projectFileParser;
+ Logger = NullLogger.Instance;
}
- ///
- /// Compile a csproj file given its virtual path, a build provider and an assembly builder.
- /// This method works in medium trust.
- ///
- public void CompileProject(string virtualPath, IAssemblyBuilder assemblyBuilder) {
- using (var stream = _virtualPathProvider.OpenFile(virtualPath)) {
- var descriptor = new CSharpProjectParser().Parse(stream);
- var directory = _virtualPathProvider.GetDirectoryName(virtualPath);
+ public ILogger Logger { get; set; }
+
+ public void Compile(CompileExtensionContext context) {
+ Logger.Information("Generate code for file \"{0}\"", context.VirtualPath);
+
+ using (var stream = _virtualPathProvider.OpenFile(context.VirtualPath)) {
+ var descriptor = _projectFileParser.Parse(stream);
+
+ var directory = _virtualPathProvider.GetDirectoryName(context.VirtualPath);
foreach (var filename in descriptor.SourceFilenames.Select(f => _virtualPathProvider.Combine(directory, f))) {
- assemblyBuilder.AddCodeCompileUnit(CreateCompileUnit(filename));
+ context.AssemblyBuilder.AddCodeCompileUnit(CreateCompileUnit(filename));
}
}
}
diff --git a/src/Orchard/Environment/Extensions/Compilers/CSharpProjectParser.cs b/src/Orchard/Environment/Extensions/Compilers/DefaultProjectFileParser.cs
similarity index 70%
rename from src/Orchard/Environment/Extensions/Compilers/CSharpProjectParser.cs
rename to src/Orchard/Environment/Extensions/Compilers/DefaultProjectFileParser.cs
index 1c0288149..2152bc3df 100644
--- a/src/Orchard/Environment/Extensions/Compilers/CSharpProjectParser.cs
+++ b/src/Orchard/Environment/Extensions/Compilers/DefaultProjectFileParser.cs
@@ -5,24 +5,11 @@ using System.Xml;
using System.Xml.Linq;
namespace Orchard.Environment.Extensions.Compilers {
- public class CSharpProjectDescriptor {
- public string AssemblyName { get; set; }
- public IEnumerable SourceFilenames { get; set; }
- public IEnumerable References { get; set; }
- }
+ public class DefaultProjectFileParser : IProjectFileParser {
- public class ReferenceDescriptor {
- public string AssemblyName { get; set; }
-
- public override string ToString() {
- return "{" + (AssemblyName ?? "") + "}";
- }
- }
-
- public class CSharpProjectParser {
- public CSharpProjectDescriptor Parse(Stream stream) {
+ public ProjectFileDescriptor Parse(Stream stream) {
var document = XDocument.Load(XmlReader.Create(stream));
- return new CSharpProjectDescriptor {
+ return new ProjectFileDescriptor {
AssemblyName = GetAssemblyName(document),
SourceFilenames = GetSourceFilenames(document).ToArray(),
References = GetReferences(document).ToArray()
diff --git a/src/Orchard/Environment/Extensions/Compilers/IExtensionCompiler.cs b/src/Orchard/Environment/Extensions/Compilers/IExtensionCompiler.cs
new file mode 100644
index 000000000..30bd05ed3
--- /dev/null
+++ b/src/Orchard/Environment/Extensions/Compilers/IExtensionCompiler.cs
@@ -0,0 +1,5 @@
+namespace Orchard.Environment.Extensions.Compilers {
+ public interface IExtensionCompiler {
+ void Compile(CompileExtensionContext context);
+ }
+}
diff --git a/src/Orchard/Environment/Extensions/Compilers/IProjectFileParser.cs b/src/Orchard/Environment/Extensions/Compilers/IProjectFileParser.cs
new file mode 100644
index 000000000..33ea9f1aa
--- /dev/null
+++ b/src/Orchard/Environment/Extensions/Compilers/IProjectFileParser.cs
@@ -0,0 +1,7 @@
+using System.IO;
+
+namespace Orchard.Environment.Extensions.Compilers {
+ public interface IProjectFileParser {
+ ProjectFileDescriptor Parse(Stream stream);
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/Extensions/Compilers/ProjectFileDescriptor.cs b/src/Orchard/Environment/Extensions/Compilers/ProjectFileDescriptor.cs
new file mode 100644
index 000000000..7fef8e138
--- /dev/null
+++ b/src/Orchard/Environment/Extensions/Compilers/ProjectFileDescriptor.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+
+namespace Orchard.Environment.Extensions.Compilers {
+ public class ProjectFileDescriptor {
+ public string AssemblyName { get; set; }
+ public IEnumerable SourceFilenames { get; set; }
+ public IEnumerable References { get; set; }
+ }
+ public class ReferenceDescriptor {
+ public string AssemblyName { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs b/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs
index 24fb9d0f2..61bda79ed 100644
--- a/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs
+++ b/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using Orchard.Caching;
using Orchard.Environment.Extensions.Loaders;
@@ -21,10 +20,12 @@ namespace Orchard.Environment.Extensions {
IExtensionManager extensionManager,
IEnumerable loaders,
IHostEnvironment hostEnvironment) {
+
_dependenciesFolder = dependenciesFolder;
_extensionManager = extensionManager;
_loaders = loaders.OrderBy(l => l.Order);
_hostEnvironment = hostEnvironment;
+
T = NullLocalizer.Instance;
Logger = NullLogger.Instance;
}
@@ -37,19 +38,16 @@ namespace Orchard.Environment.Extensions {
var extensions = _extensionManager.AvailableExtensions().Where(d => d.ExtensionType == "Module").ToList();
var existingDependencies = _dependenciesFolder.LoadDescriptors().ToList();
-
- var sameExtensions = extensions.Where(e => existingDependencies.Any(e2 => e2.Name == e.Name)).ToList();
var deletedDependencies = existingDependencies.Where(e => !extensions.Any(e2 => e2.Name == e.Name)).ToList();
- var newExtensions = extensions.Except(sameExtensions).ToList();
- var ctx = new ExtensionLoadingContext();
+ var loadingContext = new ExtensionLoadingContext();
// Notify all loaders about extensions removed from the web site
foreach (var dependency in deletedDependencies) {
Logger.Information("Extension {0} has been removed from site", dependency.Name);
foreach (var loader in _loaders) {
if (dependency.LoaderName == loader.Name) {
- loader.ExtensionRemoved(ctx, dependency);
+ loader.ExtensionRemoved(loadingContext, dependency);
}
}
}
@@ -58,11 +56,11 @@ namespace Orchard.Environment.Extensions {
// load that extension.
var newDependencies = new List();
foreach (var extension in extensions) {
- ProcessExtension(ctx, extension, existingDependencies, newDependencies);
+ ProcessExtension(loadingContext, extension, existingDependencies, newDependencies);
}
// Execute all the work need by "ctx"
- ProcessContextCommands(ctx);
+ ProcessContextCommands(loadingContext);
// And finally save the new entries in the dependencies folder
_dependenciesFolder.StoreDescriptors(newDependencies);
diff --git a/src/Orchard/Environment/IOrchardHostContainer.cs b/src/Orchard/Environment/IOrchardHostContainer.cs
new file mode 100644
index 000000000..f7228ddd8
--- /dev/null
+++ b/src/Orchard/Environment/IOrchardHostContainer.cs
@@ -0,0 +1,5 @@
+namespace Orchard.Environment {
+ public interface IOrchardHostContainer {
+ T Resolve();
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/IShim.cs b/src/Orchard/Environment/IShim.cs
new file mode 100644
index 000000000..1dee0c789
--- /dev/null
+++ b/src/Orchard/Environment/IShim.cs
@@ -0,0 +1,9 @@
+namespace Orchard.Environment {
+ ///
+ /// Interface implemented by shims for ASP.NET singleton services that
+ /// need access to the HostContainer instance.
+ ///
+ public interface IShim {
+ IOrchardHostContainer HostContainer { get; set;}
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Environment/OrchardHostContainerRegistry.cs b/src/Orchard/Environment/OrchardHostContainerRegistry.cs
new file mode 100644
index 000000000..8dd27ea12
--- /dev/null
+++ b/src/Orchard/Environment/OrchardHostContainerRegistry.cs
@@ -0,0 +1,37 @@
+using System.Collections.Generic;
+
+namespace Orchard.Environment {
+ ///
+ /// Provides ability to connect Shims and the OrchardHostContainer
+ ///
+ public static class OrchardHostContainerRegistry {
+ private static readonly IList _shims = new List();
+ private static IOrchardHostContainer _hostContainer;
+
+ public static void RegisterShim(IShim shim) {
+ _shims.Add(shim);
+ shim.HostContainer = _hostContainer;
+ }
+
+ public static void RegisterHostContainer(IOrchardHostContainer container) {
+ if (object.ReferenceEquals(_hostContainer, container))
+ return;
+
+ UnregisterContainerShims();
+ _hostContainer = container;
+ RegisterContainerInShims();
+ }
+
+ private static void UnregisterContainerShims() {
+ foreach (var shim in _shims) {
+ shim.HostContainer = null;
+ }
+ }
+
+ private static void RegisterContainerInShims() {
+ foreach (var shim in _shims) {
+ shim.HostContainer = _hostContainer;
+ }
+ }
+ }
+}
diff --git a/src/Orchard/Environment/OrchardStarter.cs b/src/Orchard/Environment/OrchardStarter.cs
index 83c96d895..e339e5361 100644
--- a/src/Orchard/Environment/OrchardStarter.cs
+++ b/src/Orchard/Environment/OrchardStarter.cs
@@ -9,6 +9,7 @@ using Orchard.Caching;
using Orchard.Environment.AutofacUtil;
using Orchard.Environment.Configuration;
using Orchard.Environment.Extensions;
+using Orchard.Environment.Extensions.Compilers;
using Orchard.Environment.Extensions.Folders;
using Orchard.Environment.Extensions.Loaders;
using Orchard.Environment.ShellBuilders;
@@ -37,6 +38,8 @@ namespace Orchard.Environment {
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
builder.RegisterType().As().SingleInstance();
+ builder.RegisterType().As().SingleInstance();
+ builder.RegisterType().As().SingleInstance();
RegisterVolatileProvider(builder);
RegisterVolatileProvider(builder);
@@ -134,6 +137,7 @@ namespace Orchard.Environment {
}
}
+ OrchardHostContainerRegistry.RegisterHostContainer(new DefaultOrchardHostContainer(container));
return container.Resolve();
}
}
diff --git a/src/Orchard/Environment/ServiceLocator.cs b/src/Orchard/Environment/ServiceLocator.cs
deleted file mode 100644
index d0dd2bfe4..000000000
--- a/src/Orchard/Environment/ServiceLocator.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-
-namespace Orchard.Environment {
- public static class ServiceLocator {
- private static Func _locator;
-
- public static void SetLocator(Func locator) {
- _locator = locator;
- }
-
- public static T Resolve() {
- return (T)_locator(typeof(T));
- }
-
- }
-}
diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj
index ade1484b9..eea79bacb 100644
--- a/src/Orchard/Orchard.Framework.csproj
+++ b/src/Orchard/Orchard.Framework.csproj
@@ -353,6 +353,14 @@
+
+
+
+
+
+
+
+
@@ -371,11 +379,11 @@
-
-
-
+
+
+
-
+
@@ -560,7 +568,6 @@
-
diff --git a/src/Orchard/Security/Providers/OrchardMembershipProvider.cs b/src/Orchard/Security/Providers/OrchardMembershipProvider.cs
index 99b59e04c..5f09ddb45 100644
--- a/src/Orchard/Security/Providers/OrchardMembershipProvider.cs
+++ b/src/Orchard/Security/Providers/OrchardMembershipProvider.cs
@@ -6,7 +6,7 @@ namespace Orchard.Security.Providers {
public class OrchardMembershipProvider : MembershipProvider {
static IMembershipService GetService() {
- return ServiceLocator.Resolve();
+ throw new NotImplementedException("The OrchardMemberShipProvider is not supported anymore. Use the IMembershipService interface instead.");
}
static MembershipSettings GetSettings() {