IdentityServer с пользовательским ClientStore - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть следующее. Он работает в тестовой среде:

Startup.cs:

    public void ConfigureServices(IServiceCollection services) {
      // non-IdentityServer code here
      services.AddIdentityServer(
        options => {

        }
        )
          .AddApiAuthorization<UserEntity, LeagoDbContext>()
          .AddClientStore<MyClientStore>()
          ;
      services.AddAuthentication()
        .AddIdentityServerJwt();
      // more non-IdentityServer code
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
       // non-IdentityServer code here
      app.UseAuthentication();
      app.UseIdentityServer();
      // more non-IdentityServer code
    }

MyClientStore.cs:

public async Task<Client> FindClientByIdAsync(string clientId) {
  switch (clientId) {
    case "client":   // test store
      return await Task.FromResult(MyTestClient.TestClient);
    default:
      // this is the problem. Not sure what to do.
}

Если я не добавлю MyClientStore в Startup.cs реальная среда работает, а тестовая - нет. Поэтому мне как-то нужно посмотреть, как выглядит настоящий клиент (чтобы я мог его восстановить). В качестве альтернативы, я мог бы добавить клиентское хранилище по умолчанию в свое собственное хранилище и вызвать его в случае по умолчанию для оператора switch выше. Но я не уверен, как это сделать. Обратите внимание, что хранилище по умолчанию имеет зависимости от ILogger и IConfigurationDbContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...