【发布时间】:2021-02-16 19:13:44
【问题描述】:
我想返回 403 状态代码或自定义 AccessDenied 视图(尚未决定)而不是 Identity/Account/AccessDenied?ReturnUrl=%2F 页面。但我只是不知道该怎么做,因为它是默认配置并且在后台工作。
我的应用程序的上下文:
我有 3 个角色:超级管理员、管理员和客户。因此,如果用户尝试访问未经授权的控制器/操作,那么我想抛出相应的 403 状态代码或客户访问被拒绝视图。
我是 Identity 的新手,所以我只知道如何自定义我的 IdentityUser 并使用 Login/SignUp/LogOut 以及用户角色的基础知识。所以请耐心等待我或尽量简单地解释这些概念,以便像我这样的猴子能够正确理解。
我将附上我的 Dependecy Injection 容器代码,以防有人需要。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddRazorPages()
.AddRazorRuntimeCompilation();
services.AddDbContextPool<RealStateDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Standard")));
services.AddIdentity<AppUser, IdentityRole>()
.AddEntityFrameworkStores<RealStateDbContext>()
.AddDefaultUI()
.AddDefaultTokenProviders();
services.Configure<IdentityOptions>(options =>
{
//add this option to identity configuration
options.User.RequireUniqueEmail = true;
options.Password.RequiredLength = 1;
options.Password.RequireDigit = false;
options.Password.RequiredUniqueChars = 0;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
});
}
我正在开发 asp.net core mvc 3.1,并且我正在尝试重构脚手架身份代码,因此它可以使用最少/不使用 razor pages 技术(尽可能使用 mvc)。
【问题讨论】:
标签: c# asp.net-core