如何在asp.net Core 2.0中将起始页设置为登录页

时间:2019-02-18 18:12:17

标签: c# asp.net-core asp.net-core-mvc asp.net-identity 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?}");
    });

我的理解是,这应该使我进入登录页面。 但是/ Identity / Account / Login带我进入登录页面,以上操作无效。

需要方向。 谢谢:)

2 个答案:

答案 0 :(得分:1)

您的问题尚不清楚。我可以肯定地说,您实际上并不想让登录页面成为您的“起始页面”(即,如果您只是不带路径进入域,则是默认页面),而是让您的“起始页面”需要身份验证并在未通过身份验证时自动重定向到您的登录页面。

在这里,看来您只是在误解路由的工作方式。为应用程序Cookie设置指定的URL不会神奇地使您的页面显示在此处。这只是静态地告诉框架在这些情况下重定向到的位置。您实际上仍然必须对该特定路由做出响应,否则您将得到404。默认情况下,“身份”页面的路由在/Identity下。如果要更改此设置,则需要将它们放入您的项目中,然后将它们移动到项目级别的主Pages文件夹中,或者使用@page声明添加显式路由:

@page "/Account/Login"

答案 1 :(得分:0)

根据您提到的URL(/ Identity / Account / Login),“ Identity”必须是“区域”。并且由于未在默认路由中定义区域,因此它正在重定向到错误的URL。您所要做的就是将区域设置为默认路线。