如何将开始页面设置为ASP.NET Core 2.0中的登录页面



嗨,除了基础知识以外,我对路由没有太多知识。

我试图将开始页面作为ASP.NET Core 2.0中的登录页面。

这是我在startup.cs中的配置:

services.ConfigureApplicationCookie(options =>
        {
            // Cookie settings  
            options.Cookie.HttpOnly = true;
            options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
            options.LoginPath = "/Account/Login"; 
            options.LogoutPath = "/Account/Logout"; 
            options.AccessDeniedPath = "/Account/AccessDenied"; 
            options.SlidingExpiration = true;
        });
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{Controller=Account}/{action=Login}/{id?}");
    });

我的理解是,这应该带我进入登录页面。但是,/身份/帐户/登录将我带到登录页面,上面不起作用。

需要方向。谢谢:)

您的问题不清楚。我可以合理地确定您实际上并不希望登录页面成为您的"启动页面"(即,如果您只能使用没有路径的域,则默认页面),而是要拥有"开始页面"并在未经身份验证时自动重定向到您的登录页面。

那里,看来您只是在误解路由的工作原理。为您的应用程序Cookie设置指定的URL不会神奇地使您的页面出现在此处。它只是静态地告诉框架在哪里重定向到这些条件。您仍然必须实际对该特定路线有所反应,否则您将获得404。默认情况下,身份页在/Identity下的路线。如果要更改此操作,则需要在项目级别上将它们拖到项目中,然后将它们移至您的主要Pages文件夹中,或使用@page声明添加明确路由:

@page "/Account/Login"

基于您提到的URL(/Identity/account/login),"身份"必须是区域。并且由于该区域未在默认路由下定义,因此它正在重定向到错误的URL。您需要的只是将该区域放在默认路线中。

相关内容

  • 没有找到相关文章