2015-06-12 3 views
2

Кто-нибудь пытался использовать IdentityManager с vNext?IdentityManager with VNext

У меня возникли проблемы с методом расширения app.UseIdentityManager(IdentityManagerOptions).

Его не существует.

Поэтому я попытался использовать метод расширения, сделанный для UseIdentityServer (найдено here), изменив все связанные с сервером аспекты с менеджером. Когда я делаю это, я получаю System.NullReferenceException в строке 43.

Любой вид советов о том, как идти о с методом расширения будет очень ценна

+0

Смотрите этот образец из IdentityServer3, где реализуется IdentityManager: https: // GitHub .com/IdentityServer/IdentityServer3.Samples/tree/master/source/AspNetIdentity/SelfHost К сожалению, этот образец сломан. –

+0

@CorstianBoerman. Спасибо за ссылку. После игры с IdentityManager и Server (для AspIdentoty) я понял, что основная проблема заключается в том, что vNext работает с Identity3, в то время как идентификаторы и менеджер по-прежнему используют Identity 2.0. Пожалуйста, поправьте меня, если я ошибаюсь. Опять же, спасибо за образец link – MRainzo

+1

Это правда. Я перепробовал себя, что я где-то читал, но не планировал поддерживать asp.net 5, но похоже, что они передумали: https://github.com/IdentityManager/IdentityManager/issues/144 –

ответ

-2

Я использую vNext, и я заметил, что многие вещи изменились и будут продолжать меняться.

Для моих собственных нужд я смог получить идентификацию и работать довольно легко, и есть два шага, которые я должен был предпринять, чтобы заставить его работать должным образом. То, что я сделал, должно работать и на вас.

В вашем StartUp.cs вам нужно будет убедиться, что вы добавляете следующую методу ConfigureServices:

services.AddIdentity<ApplicationUser, IdentityRole>() 
      .AddEntityFrameworkStores<ApplicationDbContext>() 
      .AddDefaultTokenProviders(); 

В дополнении к тому, что вам нужно будет настроить приложение, чтобы использовать идентификатор и сделать это вам вам необходимо сделать следующее в вашем методе Configure():

app.UseIdentity(); 
+0

You «Речь идет об Identity. IdentityManager - это еще один пакет, который упрощает добавление пользователей и т. Д., Не вникая в некоторые логики. (См. Https://github.com/IdentityManager/IdentityManager) –

0

Я использую ASPNET 5 beta6, и я получил это для работы.

Попробуйте использовать this обновленный IApplicationBuilder расширение найдено в Образцы repo на ветке dev. Перепрофилировать метод принять IdentityManagerOptions, а не IdentityServerOptions и редактировать строитель UseIdentityManager

Короче вот что мой метод расширения выглядит

public static class IApplicationBuilderExtensions 
{ 
    public static void UseIdentityManager(this IApplicationBuilder app, IdentityManagerOptions options) 
    { 
     app.UseOwin(addToPipeline => 
     { 
      addToPipeline(next => 
      { 
       var builder = new AppBuilder(); 

       var provider = app.ApplicationServices.GetService<IDataProtectionProvider>(); 

       builder.Properties["security.DataProtectionProvider"] = 
        new DataProtectionProviderDelegate(purposes => 
        { 
         var dataProtection = provider.CreateProtector(string.Join(",", purposes)); 
         return new DataProtectionTuple(dataProtection.Protect, dataProtection.Unprotect); 
        }); 

       builder.UseIdentityManager(options); 

       var appFunc = 
        builder.Build(typeof (Func<IDictionary<string, object>, Task>)) as 
         Func<IDictionary<string, object>, Task>; 
       return appFunc; 
      }); 
     }); 
    } 
} 
Смежные вопросы