Added new methods on IdentityBuilder
This commit is contained in:
parent
e3602fac98
commit
ac86d94eb6
|
|
@ -76,5 +76,15 @@ namespace Microsoft.AspNet.Identity
|
|||
.AddTokenProvider(typeof(PhoneNumberTokenProvider<>).MakeGenericType(UserType))
|
||||
.AddTokenProvider(typeof(EmailTokenProvider<>).MakeGenericType(UserType));
|
||||
}
|
||||
|
||||
public IdentityBuilder AddUserManager<TUserManager>() where TUserManager : class
|
||||
{
|
||||
return AddScoped(typeof(UserManager<>).MakeGenericType(UserType), typeof(TUserManager));
|
||||
}
|
||||
|
||||
public IdentityBuilder AddRoleManager<TRoleManager>() where TRoleManager : class
|
||||
{
|
||||
return AddScoped(typeof(RoleManager<>).MakeGenericType(RoleType), typeof(TRoleManager));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,6 @@ using System;
|
|||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Microsoft.AspNet.Security.DataProtection;
|
||||
|
||||
namespace Microsoft.AspNet.Identity.Test
|
||||
{
|
||||
|
|
@ -62,6 +61,28 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
Assert.NotNull(thingy);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanOverrideUserManager()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddIdentity<TestUser, TestRole>()
|
||||
.AddUserStore<NoopUserStore>()
|
||||
.AddUserManager<MyUserManager>();
|
||||
var myUserManager = services.BuildServiceProvider().GetRequiredService(typeof(UserManager<TestUser>)) as MyUserManager;
|
||||
Assert.NotNull(myUserManager);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanOverrideRoleManager()
|
||||
{
|
||||
var services = new ServiceCollection();
|
||||
services.AddIdentity<TestUser, TestRole>()
|
||||
.AddRoleStore<NoopRoleStore>()
|
||||
.AddRoleManager<MyRoleManager>();
|
||||
var myRoleManager = services.BuildServiceProvider().GetRequiredService<RoleManager<TestRole>>() as MyRoleManager;
|
||||
Assert.NotNull(myRoleManager);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnsureDefaultServices()
|
||||
{
|
||||
|
|
@ -203,5 +224,29 @@ namespace Microsoft.AspNet.Identity.Test
|
|||
}
|
||||
}
|
||||
|
||||
private class MyUserManager : UserManager<TestUser>
|
||||
{
|
||||
public MyUserManager(IUserStore<TestUser> store,
|
||||
IOptions<IdentityOptions> optionsAccessor,
|
||||
IPasswordHasher<TestUser> passwordHasher,
|
||||
IEnumerable<IUserValidator<TestUser>> userValidators,
|
||||
IEnumerable<IPasswordValidator<TestUser>> passwordValidators,
|
||||
IUserNameNormalizer userNameNormalizer,
|
||||
IEnumerable<IUserTokenProvider<TestUser>> tokenProviders,
|
||||
IEnumerable<IIdentityMessageProvider> msgProviders) :
|
||||
base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, userNameNormalizer, tokenProviders, msgProviders)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private class MyRoleManager : RoleManager<TestRole>
|
||||
{
|
||||
public MyRoleManager(IRoleStore<TestRole> store,
|
||||
IEnumerable<IRoleValidator<TestRole>> roleValidators) : base(store, roleValidators)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue