2016-07-07 10 views
6

में निर्मित के बाहर UserManager बनाना यह पहचान और इकाई फ्रेमवर्क कोर के साथ एएसपीनेट कोर का उपयोग कर रहा है। मैं एक सास एप्लिकेशन पर काम कर रहा हूं जहां मेरे पास एक अलग व्यवस्थापक वेब ऐप है जहां आप सिस्टम में नए किरायेदारों को जोड़ सकते हैं। एक किरायेदार के बाद ऐप नए किरायेदार के लिए एक डिफ़ॉल्ट डेटाबेस (डेटाबेस प्रति किरायेदार सेट अप) बनाता है। मैं इस नए डेटाबेस में एक डिफ़ॉल्ट उपयोगकर्ता जोड़ना चाहता हूं लेकिन मैं निर्भरता इंजेक्शन सिस्टम के बाहर उपयोगकर्ता प्रबंधक बनाने के साथ संघर्ष कर रहा हूं।निर्भरता इंजेक्शन सिस्टम

व्यवस्थापक वेब ऐप व्यवस्थापक ऐप के प्रबंधक के रूप में startup.cs (अंतर्निहित डी सिस्टम के माध्यम से) में बनाए गए उपयोगकर्ता प्रबंधक का उपयोग करता है। जब मैं उपयोगकर्ता को नए किरायेदारों डेटाबेस में जोड़ने के लिए जाता हूं, तो मैं डीआई सिस्टम का उपयोग नहीं कर रहा हूं, मैं सिर्फ नए किरायेदारों डेटाबेस के लिए कनेक्शन स्ट्रिंग से जुड़े IdentityDbContext के साथ UserManager बनाना चाहता हूं।

मैं के बाद एक नया किरायेदार व्यवस्थापक ऐप्स में बन जाता है इस का उपयोग कर रहा हूँ:

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 निर्माण मानकों आइटम है कि मैं क्या उदाहरणों का उपयोग करना चाहिए पर उदाहरण नहीं मिल सकता है होते हैं। कुछ इंटरफेस में डिफ़ॉल्ट कार्यान्वयन होते हैं लेकिन मुझे यकीन नहीं है कि यह आगे बढ़ने का तरीका है (या शून्य को पास करने के लिए)। निर्माता है:

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) 

पहचान स्रोत ऐसा लगता है कि मैं इन मानकों में से कुछ के लिए में अशक्त पारित कर सकते हैं को देखते हुए, लेकिन मुझे यकीन है कि मैं समझता हूँ कि यहाँ क्या इसलिए मैं कुछ भी गलत तरीके से नहीं करते पर जा रहा है बनाना चाहते ।

उपयोगकर्ता प्रबंधक के लिए स्रोत यहाँ है: https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/UserManager.cs

धन्यवाद, ब्रायन

उत्तर

6

पहचान स्रोत के माध्यम से देखने के बाद आप में nulls पारित सही परिणाम प्राप्त कर सकते हैं। बस पहले यह कोशिश करनी चाहिए थी।

संबंधित मुद्दे