Domanda

Ho un client che, durante i test, mi sta fornendo informazioni contrastanti. Non penso che stiano mentendo ma siano più confusi. Quindi, vorrei impostare alcuni semplici controlli nella mia applicazione ASP.Net. In particolare, proprio quando viene chiamata una pagina, voglio inserire immediatamente la Querystring e / o formare i dati POST in una tabella di registro. Solo i valori grezzi.

Querystring è facile. Ma non sembra esserci un modo per ottenere i dati POST del formato raw senza usare BinaryRead, e se lo faccio, allora mi esco dall'uso della raccolta Request.Form in seguito.

Qualcuno sa come aggirare questo?

EDIT: tvanfosson ha suggerito Request.Params. Stavo cercando qualcosa che fosse più facile da usare (come Request.Querystring, solo per POST), ma immagino che potrei altrettanto facilmente scorrere tutti i parametri e costruire una stringa di nome = valore & amp ;, ecc.)

È stato utile?

Soluzione

Tutti i dati del modulo devono essere nella Richiesta .Params . Dovresti farlo in ogni pagina, anche se o potresti usare un HttpModule.

[EDIT] Se vuoi ottenere i parametri del modulo separatamente usa Request.Form , insieme a Request.QueryString

Altri suggerimenti

Puoi creare un HttpModule personalizzato per catturare tutte le richieste fatte alla tua applicazione in modo da non dover toccare ogni pagina e puoi usarlo solo durante i test solo per non rallentare le prestazioni in produzione.

Un'implementazione di esempio sarebbe:

public class CustomModule : IHttpModule 
{
    public void Init(HttpApplication context)
    {
        context.EndRequest += new EventHandler(context_BeginRequest);
    }

    private void context_BeginRequest(object sender, EventArgs e)
    {
        HttpContext context = ((HttpApplication)sender).Context;
        // you can use the context.Request here to send it to the database or a log file
    }
}

Devi aggiungere il modulo al tuo web.config

<httpModules>
    <add name="CustomModule" type="CustomModule"/>
</httpModules>

Vorrei raccomandare l'implementazione e HttpHandler o un HttpModule per questo tipo di scenario. Puoi accedere ai dati POST dall'evento Page_Load ma l'implementazione di questa funzione di registrazione qui non è così gestibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top