我的Identity Server 3上有一些与用户注册过程相关的自定义屏幕。它们是使用MVC实现的。我添加了一些带有视图和模型的控制器。我已达到一点,我想在控制器中注入一些依赖项,如下所示:
import org.springframework.cloud.contract.spec.Contract
Contract.make {
request {
method(GET())
url("/v2/entity")
headers {
accept(applicationJson())
}
}
response {
status 200
body( """
{
"saveLink": "http://<requestedHost>:<requestedPort>/v2/entity/save"
}
)
}
}
我使用了#34;开箱即用的&#34;依赖解析器,他们有 - Autofac。
private readonly IMailDeliveryService _mailDeliveryService;
public CreateUserAccountController(IMailDeliveryService mailDeliveryService)
{
this._mailDeliveryService = mailDeliveryService;
}
当我尝试发出请求并尝试设置我的控制器时,我得到:
app.Map("/identity", idsrvApp =>
{
var corsPolicyService = new DefaultCorsPolicyService()
{
AllowAll = true
};
var idServerServiceFactory = new IdentityServerServiceFactory()
.UseInMemoryClients(Clients.Get())
.UseInMemoryScopes(Scopes.Get());
// ...
idServerServiceFactory.Register(new Registration<IMailDeliveryService, MailDeliveryService>());
var options = new IdentityServerOptions
{
Factory = idServerServiceFactory,
// ...
},
// ...
};
idsrvApp.UseIdentityServer(options);
});
我认为问题在于MVC和OWIn有不同的管道,但不确定。
答案 0 :(得分:0)
Identityserver 3使用自定义视图引擎。这使用了您已经显示的绑定。 MVC没有内置DI。您需要单独配置它。如果您想使用AutoFac,那么我确定有关于如何设置它的文档。