嗨,我最近正在使用IdentityServer4和EFCore 3.1.0,下面的两段代码有一个很奇怪的问题。结果是在ApiResourcesGetByIdController
函数中的apiResource
中,GetById
中包含了scope和secret的值。但是在ApiResourcesUpdateController
中,result
函数中的Update
不包含作用域和密钥的值。
这两个端点的用法是,前端调用GetById
端点以获取ApiResource对象并在前端进行一些修改。然后,前端调用Update
端点以更新数据库中的对象。
有人可以帮忙看看有什么问题吗?谢谢
[Authorize]
[Route("ApiResources")]
[ApiController]
public class ApiResourcesGetByIdController : ControllerBase
{
private readonly ConfigurationDbContext _configurationDbContext;
public ApiResourcesGetByIdController(
ConfigurationDbContext configurationDbContext)
{
_configurationDbContext = configurationDbContext;
}
[HttpGet]
[Route("")]
public IActionResult GetById([FromQuery]int id)
{
ApiResource apiResource = _configurationDbContext.ApiResources
.Include(apiResource => apiResource.Scopes)
.Include(apiResource => apiResource.Secrets)
.FirstOrDefault(apiResource => apiResource.Id == id);
}
}
[Authorize]
[Route("ApiResources")]
[ApiController]
public class ApiResourcesUpdateController : ControllerBase
{
private readonly ConfigurationDbContext _configurationDbContext;
public ApiResourcesUpdateController(
ConfigurationDbContext configurationDbContext)
{
_configurationDbContext = configurationDbContext;
}
[HttpPut]
[Route("")]
public IActionResult Update([FromBody] ApiResource resource )
{
ApiResource result = _configurationDbContext.ApiResources
.Include(apiResource => apiResource.Scopes)
.Include(apiResource => apiResource.Secrets)
.FirstOrDefault(ar => ar.Id == resource.Id);
return Ok()
}
}
答案 0 :(得分:0)
不知道为什么,但是我删除了文件并重新创建了它。然后它就可以独立工作。