如何将ASP.NET Core身份添加到现有的Core mvc项目中?

时间:2018-05-04 16:46:12

标签: asp.net-mvc asp.net-core

我已经在Mac上使用CLI启动了我的dotnet核心mvc项目而没有身份,现在我想添加此功能。我迄今知道的唯一选择是通过

创建一个新项目
dotnet new mvc --auth

有没有更好的方法为现有项目添加身份?我希望有一个新的' dotnet new'命令。

4 个答案:

答案 0 :(得分:8)

http

答案 1 :(得分:4)

您可以通过NuGet包管理器进行管理:

工具 - > NuGet包管理器 - >控制台

#standardSQL with table1 as( SELECT "basket_1" as basket,"apple" as fruit UNION ALL SELECT "basket_1","mango" as fruit UNION ALL SELECT "basket_2","apple" as fruit UNION ALL SELECT "basket_2","Apple" as fruit UNION ALL SELECT "basket_2","pine_apple" as fruit UNION ALL SELECT "basket_2","pine_apple" as fruit UNION ALL SELECT "basket_1","orange" as fruit ) SELECT basket, STRING_AGG(fruit) AS fruits_in_each_basket, ARRAY_AGG(IF(LOWER(fruit) = 'apple', fruit, NULL) IGNORE NULLS) AS apple FROM table1 GROUP BY basket 安装包Microsoft.AspNet.Identity.Core

答案 2 :(得分:2)

根据docs.microsoft.com,您可以使用 aspnet-codegenerator 将标识绑定到现有的MVC项目中。

1)如果以前尚未安装ASP.NET Core脚手架,请立即安装:

dotnet tool install -g dotnet-aspnet-codegenerator

2)将对Microsoft.VisualStudio.Web.CodeGeneration.Design的包引用添加到项目(* .csproj)文件。在项目目录中运行以下命令:

dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet restore

3)运行以下命令以列出“身份支架”选项:

dotnet aspnet-codegenerator identity -h

4)在项目文件夹中,使用所需选项运行身份支架。例如,要使用默认用户界面和最少文件数设置身份,请运行以下命令:

dotnet aspnet-codegenerator identity --useDefaultUI

5)生成的身份数据库代码需要实体框架核心迁移。创建迁移并更新数据库。例如,运行以下命令:

dotnet ef migrations add CreateIdentitySchema
dotnet ef database update

6)在 UseStaticFiles 之后调用 UseAuthentication

public class Startup
{

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseAuthentication(); // <-- add this line
        app.UseMvcWithDefaultRoute();
    }
}

答案 3 :(得分:0)

我正在关注this MS教程,但是遇到了一些问题,因此我在这里列出了它们,以及解决方法。

我的连接字符串有问题。这是我的连接字符串在appsettings.json末尾的样子,因为我的MS SQL Server在特定端口上工作:

 "AuthDbContextConnection": "Data Source=xxx.xxx.xxx.xxx,10008;Initial Catalog=dbName;Persist Security Info=True;User ID=sqluser;Password=sqlpassword"

xxx.xxx.xxx.xxx在这里,而不是IP地址。

我无法安装Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore,因此进入数据包页面here,并为我的项目(.NET Core 3.x)安装了最新版本this。所以我已经用:

安装了软件包
Install-Package Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore -Version 3.1.10

那之后我跑

Add-Migration CreateIdentitySchema -Context AuthDbContext

没有上下文参数就无法工作。 这创建了2个迁移,我分别运行:

Update-Database 20201217102436_InitialCreate -Context AuthDbContext

 Update-Database 20201218083037_CreateIdentitySchema -Context AuthDbContext

那行得通。已成功在MS SQL服务器中创建表。