4 messaggi dal 21 febbraio 2019
Come facciamo a passare delle option con la chiamata UseMiddleware<HealthCheckMiddleware> ?
Vorremmo usare una nostra custom response
var options = new HealthCheckOptions
{
ResponseWriter = async (c, r) =>
{
c.Response.ContentType = "application/json";

var result = JsonConvert.SerializeObject(new
{
status = r.Status.ToString(),
errors = r.Entries.Select(e => new {key = e.Key, value = e.Value.Status.ToString()})
});
await c.Response.WriteAsync(result);
}
};
Grazie!
Ciao,

UseMiddleware accetta un parametro &#8220;args&#8221; a cui devi passare un IOption<HealthCheckOptions>

Puoi ottenerlo tramite Options.Create (richiede il package Microsoft.Extensions.Options)

Ps non è farina del mio sacco, ho biecamente copiato da qui ;)

https://github.com/aspnet/AspNetCore/blob/master/src/Middleware/HealthChecks/src/Builder/HealthCheckApplicationBuilderExtensions.cs

Ciao!
4 messaggi dal 21 febbraio 2019
Ciao Grazie!
In realtà la chiamata che fai è
UseMiddleware<HealthCheckMiddleware> dove abbiamo solo questo costruttore

public HealthCheckMiddleware(RequestDelegate next, IOptions<HealthCheckOptions> healthCheckOptions, HealthCheckService healthCheckService);


Non capisco come chiamarlo :-)

Se uso a.UseHealthChecks("/health", options) chiaramente bypassa poi il tuo pezzo di autenticazione e va in anonymous.
333 messaggi dal 05 novembre 2012
Ciao,

var options = new HealthCheckOptions
{
    ResponseWriter = async (c, r) =>
    {
        c.Response.ContentType = "application/json";

        string result = JsonConvert.SerializeObject(new
        {
            status = r.Status.ToString(),
            errors = r.Entries.Select(e => new
            {
                key = e.Key,
                value = e.Value.Status.ToString()
            })
        });

        await c.Response.WriteAsync(result);
    }
};

app.Map("/health", a =>
{
    a.Use(async (context, next) =>
    {
        if (context.User.Identity.IsAuthenticated)
        {
            await next.Invoke();
            return;
        }

        context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
    });

    a.UseMiddleware<HealthCheckMiddleware>(Options.Create(options));
});


/Ciao

Alessio
hai fatto come ti ho detto? :)

var options = new HealthCheckOptions()
{
    // ResponseWriter = ...
};

app.UseMiddleware<HealthCheckMiddleware>(Options.Create(options));
333 messaggi dal 05 novembre 2012
Cradle ha scritto:
scioCoder ha scritto:
Ciao,
cut...

/Ciao




...ero di fretta...ho fatto qualcosa di sbagliato? :-)

/Ciao

Alessio
no no, era un ;-) perche' abbiamo dato la stessa risposta

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.