如何在ASP.NET CORE 5.0 MVC中使登录成为默认路由



加载应用程序时,我正试图在第一次启动时加载登录页面。到目前为止我尝试了什么

配置

app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
//pattern: "{area=Manager}/{controller=Ticket}/{action=Index}/{id?}");
pattern: "{area=Manager}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});

配置服务

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

这个方法运行良好,但在用户单击"登录"按钮后,什么也没发生。中的登录页面再次加载。到目前为止,我在这里查看了几篇文章,但无论我查看什么,都与.NET CORE 2.0CORE 2.1有关知道这里出了什么问题吗?

Default Routes应该将用户重定向到一个公共页面(如index.*或start.*等(,用户可以在其中导航并完成自己的工作。

在我看来,为此设置登录页面似乎是错误的,因为除了登录和验证之外,你不能在那里做任何其他事情。

你说过,你想在发生任何其他事情之前始终显示登录页面,那么我想你的应用程序是完全安全的,没有有效的登录,任何操作或功能都不可用。

如果是这种情况,那么只需在每个页面上要求一个授权,它就会自动将您重定向到登录屏幕。您可以为此使用[Authorize]属性,甚至可以在configure方法中全局配置它:endpoints.MapRazorPages().RequireAuthorization();

提示:还没有检查这个是否有效,一些搜索针对";asp.net mvc全球授权"可能对这里有帮助

此解决方案适用于我的

配置服务

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

配置

app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{area=Manager}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages().RequireAuthorization();
});

相关内容

  • 没有找到相关文章

最新更新