我正在尝试运行一个映射了以下路由的 Web 应用程序:
app.UseMvc(routes =>
{
routes.MapRoute(
"default",
"WoL/{controller=Account}/{action=Login}/{id?}");
});
如果用户未经过身份验证并尝试访问具有 AuthorizeAttribute 的操作,则应将用户重定向到默认登录 URL(如上所示)。但用户被重定向到“/Account/Login”而不是“/WoL/Account/Login”。如果用户未经过身份验证,如何将用户重定向到“/WoL/Account/Login”?我配置了以下 Cookie 身份验证:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
LoginPath = new PathString("/WoL/Account/Login"),
AutomaticChallenge = true
});
@Dmitry 的答案在 ASP.NET Core 3.1 中不再起作用。根据您可以找到的文档,您必须将以下代码添加到ConfigureServices:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Latest)
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeAreaFolder("Identity", "/Account/Manage");
options.Conventions.AuthorizeAreaPage("Identity", "/Account/Logout");
});
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = $"/Identity/Account/Login";
options.LogoutPath = $"/Identity/Account/Logout";
options.AccessDeniedPath = $"/Identity/Account/AccessDenied";
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)