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


90

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

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

在此处输入图片说明


我在这里问过一个问题,如果您有兴趣回答:stackoverflow.com/questions/51728881/…。我在.NET Core 2.1 Identity Server 4应用程序中无法注销。+1。
w0051977

Answers:


74

2.1更改之一是Razor类库,默认身份位于各个身份验证模板中的其中一个中。如果您希望将代码包含在应用程序中以便自定义代码,则可以使用Visual Studio或全局脚手架工具将其脚手架出。有关如何同时执行这两个操作,请参阅本指南


20
我能够生成cshtml文件而不是控制器。指南没有提及,任何想法如何生成accountController?
user1085907 '18

6
啊,我的坏人..子文件中的类似设计器
user1085907

15
为什么这东西有所改善?它使事情不必要地令人费解。

93

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

  1. 解决方案资源管理器中,右键单击项目>添加>新建脚手架项目
  2. 在“添加脚手架”对话框的左窗格中,选择“身份” >“添加”
  3. 在“添加身份”对话框中,选择要覆盖的文件。
    1. 必要时选择布局
    2. 选择或创建数据上下文类
  4. 点击添加

有关更多信息,请访问文档


1
您需要右键单击该项目而不是解决方案以获取“新棚架物料” ..感谢您的注意
leen3o

1
这仍然没有引入“帐户控制器”字段,例如我已经添加了自定义字段,如何在register方法中告诉我需要它们。
rogue39nin

嘿,如果我想覆盖控制器而不是剃须刀页面怎么办?我正在使用SPA,所以不确定是否可以覆盖控制器
Robert Tirta,

7

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




2

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.