簡體   English   中英

InvalidOperationException:無法解析類型為“Microsoft.AspNetCore.Identity.UserManager”的服務

[英]InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UserManager`

錯誤:

處理請求時發生未處理的異常。 InvalidOperationException:在嘗試激活“TestApp_03_RazorPage_Identity.Areas.Identity.Pages.Account.RegisterModel”時,無法解析類型“Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]”的服務。 Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,bool isDefaultParameterRequired)

詳細信息:我正在關注 Microsoft 示例,但當我嘗試設置ApplicationUser class 時它仍然無法正常工作。我看到了類似的帖子,但對我沒有任何幫助

程序.cs

var builder = WebApplication.CreateBuilder(args);
var connectionString = 
builder.Configuration.GetConnectionString("MyConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(connectionString));

builder.Services.AddDatabaseDeveloperPageExceptionFilter();

builder.Services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>();

builder.Services.AddRazorPages();

應用用戶.cs

public class ApplicationUser : IdentityUser
{
    public string FullName { get; set; }
}

ApplicationDbContext.cs

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
 {
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

_LoginPartial.cshtml

@using Microsoft.AspNetCore.Identity
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

注冊模型

public class RegisterModel : PageModel
{
    private readonly SignInManager<ApplicationUser> _signInManager;
    private readonly UserManager<ApplicationUser> _userManager;
    private readonly IUserStore<IdentityUser> _userStore;
    private readonly IUserEmailStore<IdentityUser> _emailStore;
    private readonly ILogger<RegisterModel> _logger;
    private readonly IEmailSender _emailSender;

如果擴展IdentityUser ,則需要使用ApplicationUser

private readonly IUserStore<ApplicationUser> _userStore;
private readonly IUserEmailStore<ApplicationUser> _emailStore;

代替:

private readonly IUserStore<IdentityUser> _userStore;
private readonly IUserEmailStore<IdentityUser> _emailStore;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM