我创建了一个带有个人身份的新 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