ASP.Net Core 2.1 中的身份< - 自定义 AccountController

Posted

技术标签:

【中文标题】ASP.Net Core 2.1 中的身份< - 自定义 AccountController【英文标题】:Identity in ASP.Net Core 2.1< - Customize AccountController 【发布时间】:2018-11-13 13:22:23 【问题描述】:

我已经安装了ASP.NET Core 2.1,但即使我使用ASP.NET Core 2.1Individual User AccountsStore user accounts in-app 创建了一个新的ASP.NET Core Web Application,我也找不到AccountController 或Views。

我仍然可以毫无问题地注册和登录,但我找不到它的代码,它存在于 2.0 中。

【问题讨论】:

如果您有兴趣回答,我在这里问了一个问题:***.com/questions/51728881/…。我正在努力注销 .NET Core 2.1 Identity Server 4 应用程序。 +1。 【参考方案1】:

ASP.NET Core 2.1 引入了称为 Razor 类库的新功能,可让您将视图和页面构建为可重用库的一部分。 ASP.NET Core Identity 已移至此类 RCL。您可以在项目中覆盖它:

    Solution Explorer 中,右键单击项目 > Add > New Scaffolded Item。 从添加脚手架对话框的左窗格中,选择身份 > 添加。 在添加身份对话框中,选择您要覆盖的文件。
      必要时选择布局 选择或创建数据上下文类
    点击添加

欲了解更多信息visit documentation。

【讨论】:

您需要右键单击项目而不是获得“新脚手架项目”的解决方案 .. 感谢您对此提出的建议 这仍然没有引入 Account Controller 字段说我添加了自定义字段我如何告诉它我在注册方法中需要它们。 嘿,如果我想覆盖控制器而不是剃须刀页面怎么办?我正在使用 SPA,所以我不确定是否可以覆盖控制器 已接受的答案已被接受,现在无需说@WibisonoIndrawan【参考方案2】:

changes in 2.1 之一是 Razor 类库,默认身份位于单个身份验证模板中的其中一个中。如果您希望在您的应用程序中包含代码以便对其进行自定义,您可以使用 Visual Studio 或全局脚手架工具将其搭建出来。请参阅 this guide 了解如何同时执行这两种操作。

【讨论】:

我能够生成cshtml文件而不是控制器。指南没有提到它,知道如何生成accountController吗? 啊我的坏..它就像子文件中的设计师 为什么这是一个改进?它使事情变得不必要地复杂。【参考方案3】:

我的解决方案是使用 .net core 2.0 创建项目,然后将框架更新到 2.1 并将所有依赖项更新到最新版本

【讨论】:

【参考方案4】:

原来ASP.NET Core Identity 现在可以作为一个名为Microsoft.AspNetCore.Identity.UI 的预构建包提供。

您可以在此处阅读更多信息:

https://blogs.msdn.microsoft.com/webdev/2018/03/02/aspnetcore-2-1-identity-ui/

【讨论】:

【参考方案5】:

ASP.NET Core 2.1 到identity UI is shipped as a library。

但是您可以通过将视图和控制器放置在正确的位置(例如 View/Account/Login.cshtml)来覆盖视图和控制器。

【讨论】:

【参考方案6】:

据我所知,AccountController 代码已移至 Razor 页面(及其背后的代码),并且使用默认设置效果最佳,因此您可以自定义代码 Scaffold(即在正确的位置创建文件)通过右键单击 Visual Studio 2017 中的项目并选择 Add => New Scaffolded Item => Identity 打开一个选择对话框来创建全新的 Net Core 2.1 项目。选择所需的页面,然后就可以了。只需更改您想要的页面并将其复制到启用身份的项目中的相同位置,因为这些新页面会自动覆盖默认值。这是使用 Identity 自定义身份验证/授权的新方法,不确定是否有很多人认为这是一项重大进展!

【讨论】:

以上是关于ASP.Net Core 2.1 中的身份< - 自定义 AccountController的主要内容,如果未能解决你的问题,请参考以下文章

带有 Windows 身份验证的 ASP.NET Core 2.1 自定义 RoleProvider

在 Asp.Net Core 2.1 中找不到帐户页面

ASP.NET Core 2.1 cookie 身份验证似乎具有服务器关联性

ASP.NET Core 2.1 中的 Scaffold Identity UI 并添加全局过滤器

ASP.NET Core 2.1 Jwt 设置自定义声明

向 ASP.NET Core 2.1 Web API 添加 JWT 身份验证时是不是需要创建像 AspNetUsers 这样的表?