为了账号安全,请及时绑定邮箱和手机立即绑定

Authorize(Roles = "Admin") 始终返回 ACCESS DENIED

Authorize(Roles = "Admin") 始终返回 ACCESS DENIED

C#
慕村9548890 2023-08-27 10:48:05
我花了很多时间在这件事上,看起来很简单,但找不到解决方案。创建一个项目并运行良好,登录,注册等。但授权不适用于角色。创建并设置角色:但尝试访问时总是返回 Access Denied:public class _ConfigurationsController : Controller{    [Authorize(Roles = "AdminApp")]    public IActionResult Index()    {        return View();    }}启动.cs ...public void ConfigureServices(IServiceCollection services){    services.Configure<CookiePolicyOptions>(options =>    {        // This lambda determines whether user consent for non-essential cookies is needed for a given request.        options.CheckConsentNeeded = context => true;        options.MinimumSameSitePolicy = SameSiteMode.None;    });    services.AddDbContext<ApplicationDbContext>(options =>        options.UseSqlServer(Configuration.GetConnectionString("MyConnection")));    services.AddDbContext<Scaffolding_AutoGer_Context>(options =>        options.UseSqlServer(Configuration.GetConnectionString("MyConnection")));    services.AddDefaultIdentity<IdentityUser>()        .AddRoles<IdentityRole>()        .AddRoleManager<RoleManager<IdentityRole>>()        .AddDefaultTokenProviders()        .AddEntityFrameworkStores<ApplicationDbContext>();    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);}public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider){    if (env.IsDevelopment())    {        app.UseDeveloperExceptionPage();        app.UseDatabaseErrorPage();    }    else    {        app.UseExceptionHandler("/Home/Error");        app.UseHsts();    }    app.UseHttpsRedirection();    app.UseStaticFiles();    app.UseCookiePolicy();    app.UseAuthentication();    app.UseMvc(routes =>    {        routes.MapRoute(            name: "default",            template: "{controller=Home}/{action=Index}/{id?}");    });}AspNet用户表AspNetUserRoles 表MVC - 脚手架项目个人账户登录.NET Core 2.1 VS 2017
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我认为您的问题与没有配置策略有关。在public void ConfigureServices(IServiceCollection services)指定这些。

 services.AddAuthorization(options =>
            options.AddPolicy("AdminApp",
                policy => policy.RequireClaim("Manager")));
查看完整回答
反对 回复 2023-08-27
  • 1 回答
  • 0 关注
  • 211 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信