2016-07-07 30 views
6

Bu, kimlik ve varlık çerçeve çekirdeği olan asp.net çekirdeğini kullanmaktadır. Sisteme yeni kiracılar ekleyebileceğiniz ayrı bir yönetici web uygulamasının olduğu bir saas uygulamasında çalışıyorum. Bir kiracı oluşturulduktan sonra uygulama, yeni kiracı için bir varsayılan veritabanı (kiracı kurulumu başına veritabanı) oluşturur. Bu yeni veritabanına varsayılan kullanıcı eklemek istiyorum ancak bağımlılık enjeksiyon sistemi dışında kullanıcı yöneticisi oluşturmayla uğraşıyorum.Yerleşik bağımlılık enjeksiyon sistemi dışında bir UserManager oluşturma

Yönetici web uygulaması, startup.cs'de (yerleşik sistem üzerinden) yönetici uygulaması için yönetici olarak oluşturulan usermanager'ı kullanır. Kullanıcıyı yeni kiracı veritabanına eklemek için gittiğimde DI sistemini kullanmıyorum, sadece yeni kiracı veritabanı için bağlantı dizesiyle ilişkilendirilmiş IdentityDbContext ile bir UserManager oluşturmak istiyorum.

Ben yeni kiracı yönetici uygulamasında oluşturulduktan sonra bu kullanıyorum ediyorum:

public class TenantDbInitializer 
{ 
    private Tenant tenant; 
    private ApplicationDbContext context; 

    private UserManager<ApplicationUser> userManager; 

    public TenantDbInitializer(Tenant tenant) 
    { 
     this.tenant = tenant; 
    } 

    public void Init() 
    { 
     // tenant contains connection string 
     context = new ApplicationDbContext(tenant); 

     var userStore = new UserStore<ApplicationUser>(context); 

     userManager = new UserManager<ApplicationUser>(......... 
    } 
} 

UserManager inşaat parametreleri kullandığım gereken örnekleri üzerinde örnekler bulamıyorum öğeleri içerir. Bazı arabirimlerin varsayılan uygulamaları var gibi görünüyor, ancak bu devam etmek için yolu (veya boş geçme) olup olmadığından emin değilim.

public UserManager(IUserStore<TUser> store, 
     IOptions<IdentityOptions> optionsAccessor, 
     IPasswordHasher<TUser> passwordHasher, 
     IEnumerable<IUserValidator<TUser>> userValidators, 
     IEnumerable<IPasswordValidator<TUser>> passwordValidators, 
     ILookupNormalizer keyNormalizer, 
     IdentityErrorDescriber errors, 
     IServiceProvider services, 
     ILogger<UserManager<TUser>> logger) 

ben bu parametrelerin bazıları için null geçirebilmesi görünen kimlik kaynağında baktığımızda ama emin ben bu yüzden yanlış bir şey yapmıyorum burada neler olduğunu anlamaya yapmak istiyorum: yapıcısı olduğu .

kullanıcı yöneticisi için kaynak

buradadır: https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/UserManager.cs

sayesinde Brian

cevap

6

kimlik kaynağı yoluyla baktıktan sonra doğru sonuçlar elde etmek için boş değerlere iletebilirsiniz. Önce bunu denemeliydim.

İlgili konular