zoukankan      html  css  js  c++  java
  • 简明 ASP.NET Core 手册问题记录

    最近发现了一个简明Asp.net core的手册Demo教程,传送门,教程还是比较通俗易懂的,按着教程进行了学习

    由于使用的.net core 3.1, 按照教程进行创建MVC项目,实际操作时候还是有一些问题,遂将一些问题进行记录。

    1 执行数据库变更报错,提示 dotnet-ef 命令不存在

    提示

    “无法执行,因为找不到指定的命令或文件。
    可能的原因包括:
      *你拼错了内置的 dotnet 命令。
      *你打算执行 .NET Core 程序,但 dotnet-ef 不存在。
      *你打算运行全局工具,但在路径上找不到名称前缀为 dotnet 的可执行文件。”

    执行dotnet ef migrations命令时,遇到了问题,经过查阅资料和环境配置,发现是3.0 dotnet-ef的命令行工具未安装,查阅nuget后,使用  dotnet tool install --global dotnet-ef --version 3.1.1 进行安装dotnet

    2 执行dotnet ef migrations命令,总是build start   build failed

    问题一直查找不出来,后来dotnet run发现本身代码有一个报错,解决了代码报错之后,重新执行后成功了

    3 ApplicationUser未定义

    提示 No service for type 'Microsoft.AspNetCore.Identity.UserManager`

    用户信息授权和认证参照教程使用了ApplicationUser,一直提示未定义,想着是Microsoft.AspNetCore.Identity里封装的,添加引用也没有生效,后参阅MSDN教程说明https://docs.microsoft.com/zh-cn/aspnet/core/migration/identity?view=aspnetcore-3.1

    章节迁移-ASP.NET 到ASP.NET Core看到了代码Demo

    原来是需要手动添加模型的定义,添加ApplicationUser类之后,应用Models,错误解决

    3 账号登录错误

    dotnet new mvc 默认创建的项目模板,_LoginPartial视图中,默认为IdentityUser的引用,这里是个问题,因此需要引入自定义的models,并将注入方法的用户修改为ApplicationUser

    @using Microsoft.AspNetCore.Identity
    @using xxxx.Models
    @inject SignInManager<ApplicationUser> SignInManager
    @inject UserManager<ApplicationUser> UserManager
     
    4 用户角色服务错误
     
    提示 "No service for type 'Microsoft.AspNetCore.Identity.RoleManager`1
    这里需要修改startup.cs,由于未添加角色服务,需要增加AddRoles<IdentityRole>()

     services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true).AddRoles<IdentityRole>()

                 .AddSignInManager<SignInManager<ApplicationUser>>() 
                    .AddEntityFrameworkStores<ApplicationDbContext>();
     
    5 程序启动创建的管理员角色账号登录不了
     
    页面未见提示,一直提示登录失败,查看代码运行的警告发现 User 77630e93-9a3c-4a72-a5d1-af2ad9a909f6 cannot sign in without a confirmed account.
    因为默认使用的是邮箱登录方式,这里需要对账号进行一次确认,默认创建管理员账号时,只进行了账号和角色的创建,猜测是未确认账号的问题,因此需要修改账号确认状态
     
    设置 ApplicationUser 的属性EmailConfirmed = true 问题得以解决


  • 相关阅读:
    elasticsearch _bulk api
    elasticsearch _update api 更新部分字段内容
    elasticsearch _create api创建一个不存在的文档
    sql之left join、right join、inner join的区别
    Eclipse FreeMarker 插件安装
    Linux下Tomcat服务器重启与关闭
    SQL JOIN的用法
    HttpClient请求
    Struts2学习笔记
    Tomcat长出现的内存溢出问题
  • 原文地址:https://www.cnblogs.com/dpwow/p/12206930.html
Copyright © 2011-2022 走看看