Asp.net 核心 使用策略授权用户
本文关键字:策略 授权 用户 net 核心 Asp | 更新日期: 2023-09-27 18:36:22
>我正在尝试使用从请求标头发送的持有者令牌授权用户。我在资源服务器的启动文件中添加了此代码。
services.AddAuthorization(auth =>
{
auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
.RequireAuthenticatedUser().Build());
});
这是我在控制器中的方法。
[Authorize("Bearer")]
[HttpGet]
[Route("list")]
public IEnumerable<Products> List()
{
string Authorization = Request.Headers["Authorization"];
}
应用程序显示错误 401 未经授权,即使我有令牌
我在标头请求中发送此令牌
授权:承载"xyz"
若要使用持有者令牌,必须在配置方法上添加以下代码
public void Configure(IApplicationBuilder app) {
app.UseJwtBearerAuthentication(options => {
options.AutomaticAuthenticate = true;
options.AutomaticChallenge = true;
options.Audience = "OAuth:Audience";
options.Authority = "OAuth:Authority";
options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(
metadataAddress: options.Authority + ".well-known/openid-configuration",
configRetriever: new OpenIdConnectConfigurationRetriever(),
docRetriever: new HttpDocumentRetriever() { RequireHttps = false });
});
}
您还需要一个中间件来处理授权过程。看看AspNet.Security.OpenIdConnect.Server和OpenIddict