在个人用户账户中覆盖 AccountController

3
我已经在Asp.Net Core 2.1中创建了mvc Individual User Accounts,并添加了。我需要重写路由为。我猜我需要访问AccountController并添加属性。我该如何操作呢?提前感谢您的帮助。

2
在ASP.NET Core 2.1中,你不能这样做!这真的是微软做的一件糟糕的事情,他们在ASP.NET Core 2.1+中移除了对身份验证的MVC支持。一个解决方案是,在ASP.NET Core 2.0项目中生成身份验证代码,然后将相关代码复制到ASP.NET Core 2.1项目中。 - TanvirArjel
1个回答

10
在最新的身份验证中,不再有AccountController。ASP.NET Core团队已经做出了(有争议的)决定,将所有内容都转移到Razor Pages中。旧的身份验证和帐户管理控制器和视图现在作为“默认UI”存在,当您使用AddDefaultIdentity时,默认情况下包含该UI。该方法在内部调用AddDefaultUI
要修改默认UI,必须将所需的部件脚手架到您的项目中,这可以通过右键单击解决方案资源管理器中的项目并选择添加>新的脚手架项来完成。然后会弹出一个窗口,您可以在其中选择各种可用的脚手架之一,其中之一是Identity。选择该选项将弹出另一个窗口,允许您选择要脚手架的Razor Pages。您可以选择任何或全部。由于默认UI仍然包含在内,因此脚手架页面将作为覆盖版本运行,因此未包含的任何内容都将退回到默认UI版本。
如果您像我和许多其他人一样厌烦Razor Pages,并希望恢复旧式MVC控制器和视图,则现在除了自己创建它们之外别无选择。您可以将所有身份验证页面脚手架到您的项目中作为指南,然后将代码移到您的控制器和视图中。然后,完成后只需删除脚手架页面即可。您还需要在ConfigureServices中使用AddIdentity而不是AddDefaultIdentity,否则默认UI仍将优先考虑。这实在是个大麻烦,但事情就是这样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接