181 messaggi dal 10 agosto 2019
ciao a tutti,non ho capito come recuperare lo user corrente dentro i controller:
mi sono loggato e poi ho chiamato il controller Discussionis

eseguendo la riga : bool s = this.User.Identity.IsAuthenticated;

ottengo:

system.NullReferenceException
HResult=0x80004003
Messaggio=Object reference not set to an instance of an object.
Origine=UserAdministrationInizio
Analisi dello stack:
at UserAdministrationInizio.Controllers.DiscussionisController..ctor(ABCDContext context) in D:\demo6\Capitolo18 - Copia\user-administration\Controllers\DiscussionisController.cs:line 21
at Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider.<>c__DisplayClass4_0.<CreateActivator>b__0(ControllerContext controllerContext)
at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass5_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__13.MoveNext()


questo il codice intorno :

public class DiscussionisController : Controller
{
private readonly ABCDContext _context;

public DiscussionisController( ABCDContext context)
{
_context = context;
bool s = this.User.Identity.IsAuthenticated;
}
---------------------------------------------------------

allego il mio metodo ConfigureServices (che mi lascia un pò perplesso :-) ):


public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

services.AddDbContext<ABCDContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));

services.AddDefaultIdentity<ApplicationUser>(options => {
})
.AddEntityFrameworkStores<ApplicationDbContext>();
/*services.AddDefaultIdentity<ApplicationUser>(options => {
})
.AddEntityFrameworkStores<ABCDContext>();*/


// Add application services.
services.AddTransient<IEmailSender, EmailSender>();

services.AddMvc();
}

suppongo che non possano coesistere due default identity anche se riferiti a due dbcontext differenti,non riesco neanche a recuperare l'HttpContext che secondo alcuni esempi permette di accedere a User , spero in un vostro consiglio ,grazie,ciao
427 messaggi dal 13 novembre 2009
Ciao
Con core 2x nel metodo Configure devi mettere app.UseAuthentication();
181 messaggi dal 10 agosto 2019
ciao,app.Authentication() c'è già nel metodo configure,il problema permane,grazie comunque della risposta
427 messaggi dal 13 novembre 2009
Comunque perché due contesti? Posso coesistere ma solo uno deve gestire applicationuser
Modificato da flaviovb il 20 agosto 2019 20:06 -
181 messaggi dal 10 agosto 2019
uno dei due AddDefaultIdentity è commentato
/*services.AddDefaultIdentity<ApplicationUser>(options => {
})
.AddEntityFrameworkStores<ABCDContext>();*/
181 messaggi dal 10 agosto 2019
problema (apparentemente) risolto passando lo usermanager nel costruttore del controller

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.