大家好,除了基本知识以外,我对路由没有什么了解。
我正在尝试将起始页设置为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带我进入登录页面,以上操作无效。
需要方向。 谢谢:)
答案 0 :(得分:1)
您的问题尚不清楚。我可以肯定地说,您实际上并不想让登录页面成为您的“起始页面”(即,如果您只是不带路径进入域,则是默认页面),而是让您的“起始页面”需要身份验证并在未通过身份验证时自动重定向到您的登录页面。
在这里,看来您只是在误解路由的工作方式。为应用程序Cookie设置指定的URL不会神奇地使您的页面显示在此处。这只是静态地告诉框架在这些情况下重定向到的位置。您实际上仍然必须对该特定路由做出响应,否则您将得到404。默认情况下,“身份”页面的路由在/Identity
下。如果要更改此设置,则需要将它们放入您的项目中,然后将它们移动到项目级别的主Pages
文件夹中,或者使用@page
声明添加显式路由:
@page "/Account/Login"
答案 1 :(得分:0)
根据您提到的URL(/ Identity / Account / Login),“ Identity”必须是“区域”。并且由于未在默认路由中定义区域,因此它正在重定向到错误的URL。您所要做的就是将区域设置为默认路线。