You need to enable JavaScript to run this app. Identity Server定义API资源与Scopes时代码与官方文档不符问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Identity Server定义API资源与Scopes时代码与官方文档不符问题求助

问题核心原因如下:

  • 你引用了错误的Scope类:IdentityServer相关的Scope类定义在 IdentityServer4.Models(IdentityServer4版本)或者 Duende.IdentityServer.Models(Duende IdentityServer版本)命名空间下,你现在自动引入的是Microsoft.OpenApi.Writers下的同名无关类,自然会出现类型不匹配的报错。
  • 新旧版本API差异导致写法冲突:
    • 早期版本(IdentityServer4 3.x及更低版本)的ApiResource.Scopes属性本身就是ICollection<string>类型,你最开始传入字符串数组的写法完全符合该版本的API要求,所以运行正常。
    • 后续版本(IdentityServer4 4.x、Duende IdentityServer所有版本)对API做了重构,ApiResource.Scopes属性调整为ICollection<Scope>类型,官方文档的写法是对应新版本的API设计。
  • 另外你提到的写法报错还有一个小细节:官方示例里的Scopes = { new Scope("my_wtf_scope") }是C#集合对象初始化的增量添加语法,前提是ApiResource的构造函数已经默认初始化了Scopes属性的集合实例;如果你用的版本没有默认初始化,需要显式创建集合再赋值,写法如下:
yield return new ApiResource("my_wtf_resource")
{
    Scopes = new List<Scope> { new Scope("my_wtf_scope") }
};

内容的提问来源于stack exchange,提问作者Konrad Viltersten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 03:30:03