Lesen JSON post-data-in ASP.Net Kern MVC

Ich habe versucht, eine Lösung zu finden für dieses, aber alle die, die kommen werden, die für Vorherige Versionen von ASP.Net.

Arbeite ich mit der JWT-Authentifizierung, middleware und haben die folgende Methode:

private async Task GenerateToken(HttpContext context)
{
    var username = context.Request.Form["username"];
    var password = context.Request.Form["password"];
    //Remainder of login code
}

Bekommt dieser die gesendeten Daten wie in Formular-Daten, aber mein Winkel-2 front-end sendet die Daten als JSON.

login(username: string, password: string): Observable<boolean> {
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });
    let body = JSON.stringify({ username: username, password: password });
        return this.http.post(this._api.apiUrl + 'token', body, options)
            .map((response: Response) => {
                
            });
    }

Meine bevorzugte Lösung ist, senden Sie es als JSON, aber ich habe nicht das abrufen der Daten. Ich weiß, es ist das senden, denn ich kann es sehen in fiddler, und wenn ich Briefträger und sendet einfach Daten in das Formular funktioniert es einwandfrei.

Im Grunde brauche ich nur, um herauszufinden, wie zu ändern Sie diese Zeile zu Lesen, die json-Daten

var username = context.Request.Form["username"];
  • warum gehst du nicht einfach wechseln Sie die login-Funktion zu verwenden, Content-Type application/x-www-form-urlencoded und nur die url-Kodieren von json
  • Ich würde gerne das komplette Frontend in der Lage sein zu senden, json, anstatt einige json verwenden, und einige verwenden Sie Formular-Daten. Ich habe tatsächlich versuchen, diese route, obwohl, und hatte eine harte Zeit, um die Daten zu senden, korrekt als form-Daten. Sogar mit Beispielen, die ich es nicht geschafft, die beiden miteinander zu reden, richtig.
  • sollten Sie gerade nicht in der Lage sein, dies zu tun? encodeURIComponent(JSON.stringify({ username: username, password: password }));
  • Nein, es ist komplizierter als das.
  • Nach dem Kampf mit den beiden Strecken dachte ich, die einfachste Lösung Bestand darin, herauszufinden, wie man bei json-Daten.
  • Ich arbeite mit IdentityServer4 und so weit wie ich kann sagen, es tut die gleiche Sache, das ist sehr ärgerlich Id lieber json als gut. Wenn ich eine Antwort finden werde ich Sie wissen lassen

InformationsquelleAutor Jhorra | 2017-03-02
Schreibe einen Kommentar