none
.net core 2.1.1 下 asp.net core mvc 单用户验证 扩展 IdentityUser 报错 RRS feed

  • 问题

  • 各位大神:

    刚刚安装了 .net core 2.1.1

    使用vs2017 新建 core web项目,选择mvc  身份验证选择  单用户身份。

    直接运行测试没有问题。

    但当我扩展IdentityUser后,报错:

    InvalidOperationException: No service for type 'Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]' has been registered.

    扩展的类为:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Identity;
    namespace WebApplication3.Data
    {
        public class AppUser:IdentityUser
        {
        }
    }

    startup.cs中

                services.AddDbContext<ApplicationDbContext>(options =>
                    options.UseSqlServer(
                        Configuration.GetConnectionString("DefaultConnection")));
                services.AddDefaultIdentity<AppUser>()
                    .AddEntityFrameworkStores<ApplicationDbContext>();

    换了机子也是一样。是我哪里有错误吗?

    2018年7月9日 2:02

全部回复

  • 你好,

    你可以试试查找项目里面的所有的ApplicationUser, 然后替换成你的自定义的AppUser

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年7月10日 2:56
    版主
  • @using Microsoft.AspNetCore.Identity
    @using WebMVC.Areas.Identity.Data
    
    @inject SignInManager<ApplicationUser> SignInManager//此处忘记替换了
    @inject UserManager<ApplicationUser> UserManager//哭~

    ..\Views\Shared\_LoginPartial.cshtml

    最近在学习.net core 2.1,研究了几天官方的ASP .NET Core 2.1 文档中的 自定义Identity,发现官方漏讲了登录局部文件模板引用了IdentityUser.把这个地方修改了就不会提示IdentityUser没有注册了。

    当我们通过添加“新搭建基架的项目”来替代“标识”,IDE修改了替代的Areas.Identity下的各文件引用,却没有提示_LoginPartial.cshtml文件。因为它们是可以同时存在的,那就是在Startup.cs另外注入identityuser等,不过这是画蛇添足- -!

    //之前不知道为什么.....傻傻地自己注册,现在想来真搞笑
    services.AddIdentityCore<ApplicationUser>()
        .AddEntityFrameworkStores<ApplicationUserContext>()
        .AddDefaultTokenProviders();
    services.AddScoped<UserManager<ApplicationUser>,UserManager<ApplicationUser>>();
    services.AddScoped<SignInManager<ApplicationUser>,SignInManager<ApplicationUser>>();

    2018年10月14日 4:57