如何更改 .Net Core 中的拒绝访问路由

How to Change Access Denied Route in .Net core

我在角色和路线方面遇到问题 我有一个帐户控制器,我在我的一个控制器中使用 Asp Identity。它需要特定的角色才能访问它。问题是,我希望它将 Unauthorized User 重定向到登录页面“Account/Login”,但它却将我重定向到“Account/AccessDenied”

我尝试了以下但没有用

 services.AddIdentity<AppUser, AppRole>(option =>
           {
               option.User.RequireUniqueEmail = true;
               
           }).AddEntityFrameworkStores <AppIdentityDbContext>(); 

我在这里编辑路径

services
        .AddAuthentication()
        .AddCookie(options =>
        {
            options.LoginPath = "account/login";
            options.LogoutPath = "account/logout";
            options.AccessDeniedPath = "account/login";
            
        });

这是控制器

[Authorize(Roles = "admin , secretary")]

您可以使用

        services.ConfigureApplicationCookie(options =>
        {

            options.LoginPath = "/Identity/Account/Login";  //in your case /Account/Login
            options.LogoutPath = "/Identity/Account/logout";
            options.AccessDeniedPath = "/Identity/Account/login";
        });

        services.AddAuthentication().AddCookie();

此外,如果您使用的是 .net core 1.x,并希望迁移到 2.0 或更高版本,请遵循此 Microsoft migration article