微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 ASP.NET Core 中重命名 AccountController

如何解决在 ASP.NET Core 中重命名 AccountController

在我的 ASP.NET Core MVC 应用程序中,我想将 AccountController 重命名为其他名称(“登录”、“授权”,具体名称无关紧要)。

但是当我这样做时,该站点仍然尝试路由到 /Account/Login,即使没有这样的东西。我需要做什么才能阻止这种情况并让它使用正确的路线?

我在 options.LoginPath 中设置了 services.ConfigureApplicationCookie,但这似乎并没有改变。

这是我的配置设置:

services.ConfigureApplicationCookie(options =>
            {
                options.Cookie.Path = "/";
                options.AccessDeniedpath = new PathString($"/{nameof(Errors)}/{nameof(Errors.Access_Denied)}");
                options.ExpireTimeSpan= TimeSpan.FromMinutes(5);    // note: testing to see if this enforces logout based on minutes of idle time
                options.SlidingExpiration = true;
                options.LoginPath = new PathString($"/{nameof(Authorization.Authorization)}/{nameof(Authorization.Authorization.Login)}");
            }); 

有什么建议吗? (如果他们让你感到困惑,请忽略电话名称

解决方法

在具有自定义身份验证的 Core 3.1 项目中,我在 Startup#ConfigureServices 中像这样指定 LoginPathLogoutPath

        services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            })
            .AddCookie(options =>
            {
                options.Cookie.Name = ...
                options.Cookie.Path = "/";
                options.LoginPath = "/Login";
                options.LogoutPath = "/Logout";
                options.AccessDeniedPath = ...;
            });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。