嗨,除了基础知识以外,我对路由没有太多知识。
我试图将开始页面作为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。您需要的只是将该区域放在默认路线中。