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(PhoneNumberTokenProvider<>).MakeGenericType(UserType))
|
||||||
.AddTokenProvider(typeof(EmailTokenProvider<>).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;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.AspNet.Security.DataProtection;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Identity.Test
|
namespace Microsoft.AspNet.Identity.Test
|
||||||
{
|
{
|
||||||
|
|
@ -62,6 +61,28 @@ namespace Microsoft.AspNet.Identity.Test
|
||||||
Assert.NotNull(thingy);
|
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]
|
[Fact]
|
||||||
public void EnsureDefaultServices()
|
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