Core 2 Razor AccesDeniedPath

Core 2 Razor AccesDeniedPath

我正在关注一个 Connect() 视频,其中他们正在保护核心 2 MVC 应用程序。在其中,他们添加了 AccessDeniedPath 和 LoginPath

的选项

但是,我使用 Razor 而不是 MVC,并让 VS 使用数据库为模式生成登录代码。我的代码如下所示:

        public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

        services.AddIdentity<ApplicationUser, MyRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

        services.AddMvc(options =>
        {
            options.Filters.Add(new RequireHttpsAttribute());
            options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
        })
            .AddRazorPagesOptions(options =>
            {
                options.Conventions.AuthorizeFolder("/Account/Manage");
                options.Conventions.AuthorizePage("/Account/Logout");
            });
    }

无法在 AddMvc、AddRazorpagesOptions 或 AddIdentity 中添加 AccessDeniedPath。

如有任何建议,我们将不胜感激。

API 用于配置应用程序 cookie 选项已从 ASP.NET 核心 1.x 更改为 2.x

 services.ConfigureApplicationCookie(opts =>
        {
            opts.LoginPath = "/Home/ErrorForbidden";
            opts.AccessDeniedPath = "/Home/ErrorLoggedIn";
        });

阅读 Migrating Authentication and Identity to ASP.NET Core 2.0 获取更多信息。