自定义服务 (Custom Services)

IdentityServer3 为数据的存储,验证逻辑和支撑 IdentityServer 操作一些必要的通用功能提供了许多可扩展性点。这些可扩展点被统称为“服务”。

参见 这里 获取完整的服务列表。

强制性服务 (Mandatory services)

有三种服务是强制的,并且需要通过实现者来完成相关配置,它们是:

我们为这三个服务提供了简单的 in-memory 版本,同样也支持社区版相关的数据仓储。 参见 这里 获取更多详情。

注册自定义服务 (Registering custom Services)

您可以替换每一个服务并注册其它自定义的服务。这是通过 Registration 类封装的。Registration 表示的就是 IdentityServer 获取您的服务实例的方式。

鉴于您服务的设计,可能在每次请求的时候都会有一个新的实例,使用 singleton (单例),或者在每次创建实例的时候需要特殊的初始化逻辑。为了适应不同的情况,Registration 类提供了多种构造器供注册您的服务使用:

var factory = new IdentityServerServiceFactory();
factory.UserService = new Registration<IUserService, MyCustomUserService>();

参见 依赖注入 (DI) 页面获取更多详情。

服务清理 (Service cleanup)

除 Singleton 外,如果您的服务实现了 IDisposable 接口,那么在每次 HTTP 请求的结尾都会调用 Dispose 方法。