HttpContext.Current è nullo in IdentityConfig.cs
EmailService : IIdentityMessageService
public Task SendAsync(IdentityMessage message)

come posso ottenerlo ugualmente? Mi serve per creare un log:
log.Username = HttpContext.Current.Request.IsAuthenticated ? HttpContext.Current.User.Identity.Name : string.Empty;


Mi andrebbe bene anche creare un ConfigurationService da richiamare all'interno di questi task async
Modificato da manuel0081 il 21 gennaio 2015 14.43 -

Ormai programmano tutti... ma la professionalità appartiene a pochi
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Manuel,
prova a recuperare l'identità dal thread corrente.

var identità = System.Threading.Thread.CurrentPrincipal.Identity;
log.Username = identità.IsAuthenticated ? identità.Name : string.Empty;


ciao

Enjoy learning and just keep making
Mi serve anche per altro...

Ormai programmano tutti... ma la professionalità appartiene a pochi
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
ok, dato che EmailService ha una dipendenza dall'HttpContext corrente, puoi iniettarglielo nel costruttore mentre sei ancora sul thread "principale", cioè quello incaricato di gestire la richiesta.

Istanzia l'EmailService in questo modo, dal file /App_Start/IdentityConfig.cs
manager.EmailService = new EmailService(HttpContext.Current);


Ma solo dopo aver modificato il suo costruttore in questo modo:
private readonly HttpContext contesto;
public EmailService(HttpContext contesto)
{
    this.contesto = contesto;
}

Dal metodo SendAsync puoi recuperare il contesto da this.contesto.

Cerca però di passargli giusto gli oggetti che gli servono, anziché l'intero HttpContext, che è difficile da mockare se vuoi fare unit testing.

ciao,
Moreno
Modificato da BrightSoul il 25 gennaio 2015 23.00 -

Enjoy learning and just keep making
Ok grazie!

Ormai programmano tutti... ma la professionalità appartiene a pochi

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.