几天前我开始学习 .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 相关的更改。
c# identityserver4 asp.net-core-webapi asp.net-core-3.0 angular8
我已经从Visual Studio创建了一个全新的网站,并选择了“个人用户帐户”身份验证。该页面_LoginPartial.cshtml包含以下内容:
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
<li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
该站点正常运行,并允许我导航到Register和Account页面;但是,我在项目中看不到那些页面。例如,我没有/Account/Register.cshtml。我的假设是_LoginPartial:
@using Microsoft.AspNetCore.Identity
Run Code Online (Sandbox Code Playgroud)
与此有关 但是呢
这些页面是否是远程托管的(F12似乎没有告诉我我要离开网站),它们是否被烘焙但以某种方式隐藏,我是否刚刚错过了它们(如果是,对不起!)?
我已经遵循了SO示例代码和官方文档,但是我更改了我的Aspnet核心2.1项目中的密码长度没有任何变化.
我总是收到消息"密码必须至少为6,最多100个字符."
在public void ConfigureServices(IServiceCollection services)我尝试过
services.Configure<IdentityOptions>(options =>
{
options.Password.RequiredLength = 1;
});
Run Code Online (Sandbox Code Playgroud)
在各个地方,或添加到 AddDefaultIdentity<>
services.AddDefaultIdentity<IdentityUser>(options =>
options.Password.RequiredLength = 1;
)
.AddEntityFrameworkStores<ApplicationDbContext>();
Run Code Online (Sandbox Code Playgroud)
但无济于事.
我使用的是非脚手架版本,因此我无法访问HTML或cshtml文件.
我正在尝试为我的Web应用程序实现OAuth2.0。我已经完成了这个链接。
我已经向2个外部提供商Microsoft和Google注册。我也在startup.cs文件中添加了身份验证。
因此,当我运行该应用程序时,单击右上角的“登录”按钮,将显示一个“登录”页面。其显示的URL为https://localhost:44325/Identity/Account/Login。
但是我无法在解决方案中的任何地方找到此页面。我想修改此页面的设计,并希望在打开应用程序后立即将其作为我的第一页。
我该怎么做。我已经搜索了几个小时,却找不到任何东西。
非常感谢您的帮助。在此先感谢您。
编辑