Я работаю над проектом, в котором я хочу отделить DbContext от удостоверения, но при регистрации пользовательских хранилищ приложение выдает исключение StackOverflowException.
Вот мои собственные хранилища:
UserStore:
public class UserStoreProvider : IUserStore<User>, IUserPasswordStore<User>
{ IUserService _userService;
public UserStoreProvider(IUserService userService)
{ _userService = userService;
}
public async Task<IdentityResult> CreateAsync(User user, CancellationToken cancellationToken)
{
await _userService.CreateAsync(AutoMapper.Mapper.Map(user, new CommonModels.User.User()));
return IdentityResult.Success;
}
public Task<IdentityResult> DeleteAsync(User user, CancellationToken cancellationToken)
{
throw new NotImplementedException();
}
//Some implementation is not pasted here
}
RoleStore:
public class RoleStoreProvider : IRoleStore<Role>
{
public Task<IdentityResult> CreateAsync(Role role, CancellationToken cancellationToken)
{
throw new NotImplementedException();
}
public Task<IdentityResult> DeleteAsync(Role role, CancellationToken cancellationToken)
{
throw new NotImplementedException();
}
public void Dispose()
{
Dispose();
}
public Task<Role> FindByIdAsync(string roleId, CancellationToken cancellationToken)
{
throw new NotImplementedException();
}
public Task<Role> FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken)
{
throw new NotImplementedException();
}
//Some implementation is not pasted here
}
И регистрация службы:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddIdentity<User, Role>()
.AddRoles<Role>()
.AddUserStore<UserStoreProvider>()
.AddRoleStore<RoleStoreProvider>().AddDefaultUI();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
После запуска приложения, пытаясь получить доступ к страницам, но приложение внезапно закрываетсяи бросая StackOverflowException.
Другие детали:
Работа с ядром Dotnet 2.2
Visual Studio 2019
Есть идеи?