C# ASP.NET Core2-基于策略的Azure AD安全
我正在尝试使用此处的引用实现基于策略的权限: 这是一个新的.NetCore2项目,我不知道这个错误意味着什么。我已尝试添加.AddTransient或.addScope,但无效 启动配置部分C# ASP.NET Core2-基于策略的Azure AD安全,c#,azure-active-directory,asp.net-core-2.2,C#,Azure Active Directory,Asp.net Core 2.2,我正在尝试使用此处的引用实现基于策略的权限: 这是一个新的.NetCore2项目,我不知道这个错误意味着什么。我已尝试添加.AddTransient或.addScope,但无效 启动配置部分 services.AddAuthentication(AzureADDefaults.AuthenticationScheme) .AddAzureAD(options => Configuration.Bind("AzureAd", options)); se
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddAuthorization(options =>
{
options.AddPolicy("AtLeast3Years",
policy => policy
.Requirements
.Add(new ExperienceRequirement(3)));
});
services.AddSession();
services.AddEditor();
services.AddSingleton<IAuthenticationHandler, ExperienceHandler>();
处理者
public class ExperienceHandler : AuthorizationHandler<ExperienceRequirement>
{
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context,
ExperienceRequirement requirement)
{
context.Succeed(requirement);
return Task.CompletedTask;
}
}
错误
“ConsumerWebCore.Filters.ExperienceHandler”不能用作泛型类型或方法“ServiceCollectionServiceExtensions.AddSingletonIServiceCollection”中的类型参数“TImplementation”。没有从“ConsumerWebCore.Filters.ExperienceHandler”到“Microsoft.AspNetCore.Authentication.IAAuthenticationHandler”的隐式引用转换。ConsumerWebCore我想您是想将其注册为IAuthorizationHandler
services.AddSingleton<IAuthorizationHandler, ExperienceHandler>();
它是一个授权处理程序,而不是身份验证处理程序 朱纳斯先生,你是个明星,你不知道我在这上面浪费了多少时间。
services.AddSingleton<IAuthorizationHandler, ExperienceHandler>();