具有自定义授权要求的Windows身份验

时间:2018-03-16 23:11:51

标签: asp.net asp.net-core asp.net-core-2.0

我正在尝试使用Windows身份验证执行ASP.NET Core 2 api。我需要一些不寻常的授权要求,所以我决定创建自己的策略要求。

public void ConfigureServices(IServiceCollection services)
{
    (...)

    services.AddAuthorization(options =>
    {
        options.AddPolicy("MyPolicy", policy => policy.AddRequirements(new MyRequirement())
        );
    });
}

我的要求:

public class MyRequirement: IAuthorizationRequirement
{
    (...)
}

处理程序:

public class MyHandler: AuthorizationHandler<MyRequirement>
{
    public IService userService;

    public MyHandler(IService service)
    {
        this.service = service;
    }

    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MyRequirement requirement)
    {
        (...)

        return Task.CompletedTask;
    }
}

显然,我的方法的授权属性:

[Authorize(Policy = "MyPolicy")]
public IEnumerable<string> GetAll()
{
    (...)
}

但是当我尝试访问这样的方法时,我得到了:

  

InvalidOperationException:未指定authenticationScheme,并且   找不到DefaultForbidScheme。

我浪费了很多时间来修复它。为什么会这样?我怎样才能让它发挥作用?

在IISExpress上,一切都在本地发生。

0 个答案:

没有答案