2016-10-04 9 views
2

Я новичок в IdentityServer, и у меня возникли проблемы с настройкой.Нет механизма хранения для указанных грантов

По причинам, в которые я не буду входить, я не могу использовать идентификатор ASP.NET или 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 для регистрации версии разработки.

Очевидно, что я не хочу использовать в магазинах памяти для производственной реализации, но я не уверен, что мне нужно сделать, чтобы исправить это.

+0

Не нажимайте на теги в заголовке вопроса http://stackoverflow.com/help/tagging – Tseng

ответ

3

AddInMemoryStores не имеет лучшего имени. Он фактически добавляет хранилище для всех временных данных, относящихся к выпущенным материалам/токенам.

Мы используем его в производстве иногда потому, что нам не нужно долго сохранять эти данные на диске, и мы не используем долгоживущие токены.

Посмотрите, что делает метод расширения here и посмотрите, как выглядит контракт на IPersistedGrantStore, чтобы получить лучшую идею.

+0

ссылка на метод расширения, который вы указали. Я столкнулся с той же проблемой, можете ли вы проверить это [http://stackoverflow.com/questions/40797993/identityserver-4-no-storage-mechanism-for-grants-specified-use-addinmemorysto] – Coding

+0

@ h.salman За последние несколько недель API буквально изменились. Спасибо, что сообщили мне, я изменил URL-адрес – Lutando

+0

. Отправленная ссылка кажется мертвой; ( – DrCopyPaste

 Смежные вопросы

  • Нет связанных вопросов^_^