如何使用angular修改asp.net核心WebAPI的asp.net身份UI

Moh*_*han 10 c# identityserver4 asp.net-core-webapi asp.net-core-3.0 angular8

几天前我开始学习 .net core,作为开始,我创建了一个带有内置 angular 8 模板的 .netcore 项目。

它有几个用 angular 构建的页面,比如计数器和获取数据等,但所有与身份相关的页面(登录、注册等)都是来自后端的纯 HTML。所以“我主要关注的是在该页面中进行一些 UI 更改”。

我发现身份已添加到类库中,因此在后端代码中不可见。为了对其进行更改,我需要首先通过脚手架重新生成将其添加到代码中。这将覆盖以前的库代码,并且可以根据需要进行修改。

所以我选择添加新的脚手架项目 --> 身份。并在第一次尝试中选择“覆盖所有文件”,仅在第二次尝试中选择“帐户\登录”和“帐户\注册”,并为 dbcontext 选择 applicationdbcontext。但不幸的是,它们都不适合我。

当我尝试构建代码时出现此错误

Error   CS0246  The type or namespace name 'IWebHostEnvironment' could not be found (are you missing a using directive or an assembly reference?)   

C:\Users\MyUserName\source\repos\MyProjectName\obj\Debug\netcoreapp3.0\Razor\Pages\Shared\_Layout.cshtml.g.cs   448
Run Code Online (Sandbox Code Playgroud)

我真的不知道 .g.cs 扩展名是什么,该页面上没有 import 语句和一些我以前从未见过的奇怪代码。页面本身也没有显示任何错误/红色标记。

我基本上想在这里实现两件事,

1) 完全使用 .net 核心应用程序作为 API,我想为所有与登录相关的东西在 angular 本身中构建 UI,而不是从后端获取 HTML。

2)在用户登录表单中添加更多字段。并且由于它是代码优先的方法,因此最终会在用户 DBSet 中进行更改(在这种情况下我不知道该怎么做)。

我没有添加任何代码示例,因为它是一种直接的问题/问题。要重现该问题,只需在 .net core 3.0 中创建一个项目并采用 angular 8 模板。现在尝试在登录或注册页面上进行任何与 UI 相关的更改。

mih*_*hai 17

令人讨厌的是,默认项目的布局中不需要的这部分位于那里。
尝试删除该导入,带有脚手架 UI 的默认应用程序将正常工作。

我的目的是为登录页面添加一些有点无聊的样式。

我做了什么?
+ 使用 Angular 和身份验证(个人用户帐户)模板(来自 Visual Studio 2019)创建了一个 ASP.NET Core Web 应用程序。
+ 添加新的脚手架项目 -> 身份在此处输入图片说明
+紧接着从台阶上ScaffoldingReadme.txt的文件(一些步骤已经Snippet的正确的地方,不需要任何附加)
+删除线@inject IWebHostEnvironment Environment,并Microsoft.AspNetCore.Hosting_Layout.cshtml页面;
+ 准备看结果:)

在此处输入图片说明

  • 感谢您的回答;-) 这里有两件事:首先只需在 Microsoft.AspNetCore.Hosting 行之前添加一个 using 即可修复注入 IWebHostEnvironment 环境问题,无需删除它。其次,这会将该网站分为两个不同的逻辑:Angular HTML 前端和 cshtml Blade View UI,使用 Angular 作为前端的一点是我们可以将服务器端代码分离为服务器端代码,而 UI 可以灵活(即 iOS 应用程序)。将 cshtml 与 angluar 混合,我不太确定这会是一个好主意,有没有直接组合或脚手架到 angluar 中? (6认同)