如何在 MVC 核心中设置标识脚手架项目/页面如何初始页面 asp.net?



我创建了一个带有个人身份的新 mvc 核心,然后覆盖登录页面:

new scaffolding item => identity => Login 

Startup.cs有一个默认的"索引"页面:

app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

但是,此登录页面/视图文件夹中没有控制器文件。 例如控制器/帐户控制器.cs

那么,我如何在项目中设置登录页面的初始页面?

自动生成的实际链接

<a asp-area="Identity" asp-page="/Account/Login">Login</a>

我看了很多链接,但找不到帮助。 https://stormpath.com/blog/routing-in-asp-net-core https://learn.microsoft.com/pt-br/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.2 https://code-maze.com/routing-asp-net-core-mvc/

此链接显示了一些内容,但这是最好的方法?批号行:https://stackoverflow.com/a/56772526/4654957

尝试在配置服务中设置以下配置:

services.AddMvc()
.AddRazorPagesOptions(options => {
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

配置

app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

您可以参考:如何在ASP .NET Core 2.1中将登录页面作为默认路由?

Finnaly 它被解决了。添加允许区域后一切正常。

配置服务

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddRazorPagesOptions(options =>
{
options.AllowAreas = true; //--working after add this line
options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
});

以下是有关如何覆盖 .Net Core 的默认登录过程的官方文档:

https://learn.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-2.2

最新更新