C# Auth0+;Asp.Net核心2.1+;错误403禁止
这是我第一次使用Auth0,我创建了我的Asp.net核心Web API 2.1,当我完成控制器的实现时,我会使用Auth0保护它们。 我按照Auth0的文档在Startup.cs中进行配置,就像在ConfigureServices方法中一样:C# Auth0+;Asp.Net核心2.1+;错误403禁止,c#,oauth-2.0,auth0,asp.net-core-2.1,C#,Oauth 2.0,Auth0,Asp.net Core 2.1,这是我第一次使用Auth0,我创建了我的Asp.net核心Web API 2.1,当我完成控制器的实现时,我会使用Auth0保护它们。 我按照Auth0的文档在Startup.cs中进行配置,就像在ConfigureServices方法中一样: // 1. Add Authentication Services services.AddAuthentication(options => { options.DefaultAuthenticateSch
// 1. Add Authentication Services
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Authority = "https://studentdz.eu.auth0.com/";
options.Audience = "https://api.studentdz.com";
});
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
在配置方法中:
// 2. Enable authentication middleware
app.UseAuthentication();
app.UseHttpsRedirection();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
之后,我在Auth0中的仪表板中创建用户,并将其分配为一个角色,这样创建它:
如果我只是在控制器中使用属性[Authorize]
,这是正常的但如果我像这样将角色添加到yhis属性中:
[Authorize(Roles=“Admin”)]
结果将是错误403禁止
请帮助寻找解决方案请查看本教程的所有内容
本教程解释了角色库身份验证所需的所有内容请查看本教程的所有内容
本教程介绍了基于角色的身份验证所需的所有内容我建议使用asp.net core 3.1。您会发现更多示例/教程。我建议您选择asp.net core 3.1。您会发现更多示例/教程他们给出的控制器示例与我的代码一样简单,但在我的项目中仍然不起作用。好的,重述:1-从Auth0您需要创建一个新规则,此规则允许您验证角色,在示例中,他们验证域以确定角色是什么,然后在同一个规则中,它们将角色添加到具有名称空间
https://schemas.quickstarts.com/roles
2-从Startup类中的项目中添加TokenValidationParameters
并在内部添加角色声明并非所有责任都来自controllerI解决,问题出在《邮递员》中,当我使用错误的授权类型请求访问令牌时,所以当我在jwt.io中转换令牌时,我没有找到角色。我遇到了同样的问题。Witch grant_类型您使用了/需要了吗?他们给出的控制器示例与我的代码非常简单,但在我的项目中仍然不起作用。好的,重述:1-从Auth0您需要创建一个新规则,此规则允许您验证角色,在示例中,他们验证域以确定角色是什么,然后在同一个规则中,它们将角色添加到具有名称空间https://schemas.quickstarts.com/roles
2-从Startup类中的项目中添加TokenValidationParameters
并在内部添加角色声明并非所有责任都来自controllerI解决,问题出在《邮递员》中,当我使用错误的授权类型请求访问令牌时,所以当我在jwt.io中转换令牌时,我没有找到角色。我遇到了同样的问题。您使用/需要什么类型的软件?