将授权属性“/Account/Login”更改为自己的登录路径

Posted

技术标签:

【中文标题】将授权属性“/Account/Login”更改为自己的登录路径【英文标题】:Change Authorized Attribute '/Account/Login' to own Login path 【发布时间】:2021-10-28 03:00:59 【问题描述】:

我有AuthController.cs 和路由:

auth/login - 登录页面,auth/register - 注册页面。

我还有另一个控制器 - ClientController.cs - 它具有 [Authorized] 属性。 当我试图访问客户的页面时,我会自动重定向到Account/Login,但它的登录路径不正确。

问题:如何更改[Authorized]属性重定向路径?

【问题讨论】:

【参考方案1】:

实际上...我们需要了解Authentication Scheme 的概念才能使其正常工作...但为了简单起见,我假设您只是使用默认配置。试试这个:

services.AddAuthentication("YourSchemeName").AddCookie("YourSchemeName",
                config =>
                
                    config.Cookie.Name = "YourCookieName";
                    config.LoginPath = "/auth/login";
                );

.AddCookie() 替换为您正在使用的身份验证方法(如 Jwt 或某些自定义 AuthenticationHandler 将是 .AddScheme<>()

【讨论】:

但是,我使用的是身份。这对身份有效吗? 是的,它确实...我不知道你的目标是Identity Server还是Microsoft Identity platform,但不管怎样,它都有效

以上是关于将授权属性“/Account/Login”更改为自己的登录路径的主要内容,如果未能解决你的问题,请参考以下文章

将 ASP.NET Core Razor 页面中的默认页面更改为登录页面

防止在 asp.net core 2.2 中重定向到 /Account/Login

如何自定义 FOS UserBundle URL

带有参数的 ASP.NET MVC 授权属性

如何修改文件的 LastAccess 时间属性

Spring Security - 无法将默认登录页面更改为自定义