核心身份:未找到名为 AuthorizationPolicy 的内容
core identity: AuthorizationPolicy named was not found
我想为两步授权添加自定义策略,这样用户在第一步之后就可以访问第二步,之后可以访问所有内容。当我有一个策略时一切正常,但是当我添加另一个策略时我开始收到此错误。我如何添加政策:
AuthorizationOptions authOptions = new AuthorizationOptions();
authOptions.AddPolicy("FirstStepCompleted", policy => policy.RequireClaim("FirstStepCompleted"));
authOptions.AddPolicy("Authorized", policy => policy.RequireClaim("Authorized"));
services.AddAuthorization(o => o = authOptions);
当我有一个政策时,我是这样添加的:
services.AddAuthorization
(
options => options.AddPolicy("FirstStepCompleted",
policy => policy.RequireClaim("FirstStepCompleted"))
);
我做错了什么?
UPD1。忘记例外:
An unhandled exception occurred while processing the request.
InvalidOperationException: The AuthorizationPolicy named: 'FirstStepCompleted' was not found.
Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable authorizeData)
AddAuthorization
调用接受一个委托,该委托将接收 AuthorizationOptions
的实例以进行配置。在您失败的示例中,您正试图 替换 这个现有的 AuthorizationOptions
实例与您在上面创建的新实例 (authOptions
),它没有真实效果(有关重新分配参数的更多信息,请参阅 Jon Skeet 的 answer)。最终,这意味着 您没有添加任何政策。
如果要在委托中添加多个策略,可以使用以下方法:
services.AddAuthorization(o =>
{
o.AddPolicy("FirstStepCompleted", policy => policy.RequireClaim("FirstStepCompleted"));
o.AddPolicy("Authorized", policy => policy.RequireClaim("Authorized"));
});
我想为两步授权添加自定义策略,这样用户在第一步之后就可以访问第二步,之后可以访问所有内容。当我有一个策略时一切正常,但是当我添加另一个策略时我开始收到此错误。我如何添加政策:
AuthorizationOptions authOptions = new AuthorizationOptions();
authOptions.AddPolicy("FirstStepCompleted", policy => policy.RequireClaim("FirstStepCompleted"));
authOptions.AddPolicy("Authorized", policy => policy.RequireClaim("Authorized"));
services.AddAuthorization(o => o = authOptions);
当我有一个政策时,我是这样添加的:
services.AddAuthorization
(
options => options.AddPolicy("FirstStepCompleted",
policy => policy.RequireClaim("FirstStepCompleted"))
);
我做错了什么?
UPD1。忘记例外:
An unhandled exception occurred while processing the request. InvalidOperationException: The AuthorizationPolicy named: 'FirstStepCompleted' was not found. Microsoft.AspNetCore.Authorization.AuthorizationPolicy.CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable authorizeData)
AddAuthorization
调用接受一个委托,该委托将接收 AuthorizationOptions
的实例以进行配置。在您失败的示例中,您正试图 替换 这个现有的 AuthorizationOptions
实例与您在上面创建的新实例 (authOptions
),它没有真实效果(有关重新分配参数的更多信息,请参阅 Jon Skeet 的 answer)。最终,这意味着 您没有添加任何政策。
如果要在委托中添加多个策略,可以使用以下方法:
services.AddAuthorization(o =>
{
o.AddPolicy("FirstStepCompleted", policy => policy.RequireClaim("FirstStepCompleted"));
o.AddPolicy("Authorized", policy => policy.RequireClaim("Authorized"));
});