Add SetMemberSignInManager builder extension (#14761)

* Add SetMemberSignInManager builder extension

* Added required using statement

---------

Co-authored-by: Emma Garland <emma.garland@rocksolidknowledge.com>
This commit is contained in:
Callum Whyte
2023-10-13 13:30:13 +02:00
committed by GitHub
parent 0ece94bf46
commit b850cd3ee0

View File

@@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Umbraco.Cms.Core.DependencyInjection;
using Umbraco.Cms.Core.Security;
using Umbraco.Cms.Web.Common.Security;
namespace Umbraco.Extensions;
@@ -39,6 +40,17 @@ public static partial class UmbracoApplicationBuilderExtensions
return builder;
}
public static IUmbracoBuilder SetMemberSignInManager<TSignInManager>(this IUmbracoBuilder builder)
where TSignInManager : SignInManager<MemberIdentityUser>, IMemberSignInManager
{
Type customType = typeof(TSignInManager);
Type signInManagerType = typeof(SignInManager<MemberIdentityUser>);
builder.Services.Replace(ServiceDescriptor.Scoped(typeof(IMemberSignInManager), customType));
builder.Services.AddScoped(customType, services => services.GetRequiredService(signInManagerType));
builder.Services.Replace(ServiceDescriptor.Scoped(signInManagerType, customType));
return builder;
}
public static IUmbracoBuilder SetMemberUserStore<TUserStore>(this IUmbracoBuilder builder)
where TUserStore : MemberUserStore
{