私は IdentityServer を初めて使用し、これを設定するのに少し問題があります。
ここでは説明しませんが、ASP.NET Identity または EntityFramework は使用できません。認証が必要なユーザー用のカスタム データベースがあるため、サンプルを取得し、カスタム永続ストアの InMemoryUsers を切り替えようとしました。
これが私のConfigureServicesメソッドです:
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer(options =>
{
options.AuthenticationOptions = new IdentityServer4.Configuration.AuthenticationOptions
{
};
})
.AddInMemoryClients(Clients.Get())
.AddInMemoryScopes(Scopes.Get())
.SetTemporarySigningCredential();
services.AddMvc();
services.AddTransient<ISignInService, SignInService>();
services.AddTransient<IUserRepository, UserRepository>();
services.AddTransient<IUserService, UserService>();
services.AddTransient<IResourceOwnerPasswordValidator, ResourceOwnerPasswordValidator>();
services.AddTransient<IProfileService, ProfileService>();
}
私はまだいくつかのことをテストしているので、この方法が不完全であることは知っていますが、アプリケーションを実行すると、次のエラーが発生します。
System.InvalidOperationException 許可のストレージ メカニズムが指定されていません。'AddInMemoryStores' 拡張メソッドを使用して、開発バージョンを登録します。
明らかに、本番環境の実装にメモリストアを使用したくありませんが、これを修正するために何をする必要があるかわかりません。