gpt4 book ai didi

c# - 使用 OAuth2 保护和访问 .NET 核心 WebApi 服务

转载 作者:太空宇宙 更新时间:2023-11-03 15:15:19 26 4
gpt4 key购买 nike

我有一个工作的 Asp.NET 核心 WebApi 服务和一个可以从 ASP.NET 核心 MVC 应用程序调用的服务。使用 AutoRest 生成的包装器调用该服务。该服务目前没有安全层,而该网站使用 OAuth2 进行保护。

我已将以下内容添加到服务中:

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"));
});

}

我的 Controller 是安全的:

[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 } };
}

我不确定问题是否在于我需要一种方法来传递我对包装器的调用中的声明,或者它是否在我的服务设置中以及它如何检测声明。

最佳答案

请尝试指定声明的值,例如允许的电子邮件地址。正如此处所建议的 - https://docs.asp.net/en/latest/security/authorization/claims.html

重复代码

options.AddPolicy("Founders", policy =>
policy.RequireClaim("EmployeeNumber", "1", "2", "3", "4", "5"));

关于c# - 使用 OAuth2 保护和访问 .NET 核心 WebApi 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com