我有一个可以工作的Asp.NET核心WebApi服务和一个可以从ASP.NET核心MVC应用程序调用的服务。该服务使用AutoRest生成的包装来调用。该服务目前没有安全层,而使用OAuth2保护网站。使用OAuth2保护和访问.NET核心WebApi服务
我已经添加了以下的服务:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddMvc();
// NEW Authorisation
services.AddAuthorization(options =>
{
options.AddPolicy("ApiAccess", policy => policy.RequireClaim("email"));
});
}
我的控制器固定这样:
[Authorize(Policy = "ApiAccess")]
public class StatusController : Controller
不过,我得到一个“未授权”的例外,当我打电话AutoRest包装:
try
{
var service = new StatusAPI(new Uri("http://localhost:17237/"));
ViewData["State"] = service.ApiStatusGet();
}
catch (Exception ex)
{
ViewData["State"] = new[] { new ServiceStatus { Name = "Health API", Message = "Is unreachable " + ex.Message } };
}
我不确定问题在于我需要一种方法来传递呼叫中的索赔包装或如果它在我的服务设置和它如何检测索赔。
是否有认证的中间件或填写主要的电子邮件要求一些自定义代码? – ycrumeyrolle
理想情况下,我正在寻找一个示例显示如何配置事件 – Mark
我没有看到您提供任何类型的包含电子邮件声明的令牌。这是'StatusAPI'为你照顾的吗? –