में Middleware में DbContext एक्सेस करना मैं जो मैंASP.NET 5
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//...
app.UseAutologin();
app.UseMvc(routes =>
{
//...
में जोड़ने तो यह पिछले मिडलवेयर है पहले Mvc खेलने में आता है अपने कस्टम मिडलवेयर लिखा था।
मेरे मिडलवेयर की Invoke
विधि में मैं DbContext
तक पहुंच (अप्रत्यक्ष रूप से) करना चाहता हूं।
InvalidOperationException
:public async Task Invoke(HttpContext context) { if (string.IsNullOrEmpty(context.User.Identity.Name)) { var applicationContext = _serviceProvider.GetService<ApplicationDbContext>(); var signInManager = _serviceProvider.GetService<SignInManager<ApplicationUser>>(); var result = await signInManager.PasswordSignInAsync(_options.UserName, _options.Password, true, false); } await _next(context); }
लगभग हर बार जब मैं निम्न अपवाद मिल का प्रयास करते हुए इसे कॉन्फिगर किया जा रहा है संदर्भ उपयोग करने के लिए बनाया गया था।
DbContext
उदाहरणOnConfiguring
के अंदर उपयोग नहीं किया जा सकता है क्योंकि यह अभी भी इस बिंदु पर कॉन्फ़िगर किया जा रहा है।
अब यह स्पष्ट रूप से PasswordSignInAsync
विधि द्वारा उठाया गया है। लेकिन मैं यह कैसे सुनिश्चित कर सकता हूं कि मॉडल ऐसी चीजों से पहले बनाया गया था?
शायद मैं पूरी तरह से स्पष्ट नहीं था: मैं DbContext
स्वयं का उपयोग नहीं करना चाहता - PasswordSignInAsync
उपयोगकर्ता और पासवर्ड की पुष्टि करते समय इसका उपयोग करता है।
मैं कोई त्रुटि है । क्या आपको एक सुधार मिला है। – aguetat
आप क्या हासिल करने की कोशिश कर रहे हैं? – mayu