Wenn Sie die standardmäßige Visual Studio 2013-Web-API-Projektvorlage mit einzelnen Benutzerkonten verwenden und mit einem Accept-Header von application / xml auf dem / token-Endpunkt veröffentlichen, gibt der Server die Antwort in JSON:
zurück %Vor%Gibt es eine Möglichkeit, das Token als XML zurück zu bekommen?
Laut RFC6749 sollte das Antwortformat JSON lauten, und Microsoft hat es entsprechend implementiert. Ich fand heraus, dass die JSON-Formatierung in der internen Klasse Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerHandler
implementiert ist, ohne Erweiterungsmöglichkeiten.
Ich bin auch auf die Notwendigkeit einer Token-Antwort in XML gestoßen. Die beste Lösung, die ich entwickelt habe, war die Implementierung von HttpModule, das JSON in XML konvertiert, wenn es in Accept header steht.
%Vor%Ok, ich hatte so viel Spaß dabei herauszufinden, ob ich OWIN verwenden könnte. Ich dachte, ich würde meine Lösung mit der Community teilen. Ich habe mir einige Einblicke aus anderen Posts geliehen Ссылка und Ссылка zusammen mit den Konzepten, die Alexei in seinem Beitrag beschreibt. Nichts Besonderes mit der Implementierung zu tun, aber ich hatte eine Anforderung für meine STS, eine XML-formatierte Antwort zurückzugeben, ich wollte mit dem Paradigma der Ehrung der Accept-Header bleiben, so würde mein Endpunkt untersuchen, um festzustellen, ob es den XML-Swap ausführen musste oder nicht. Dies verwende ich derzeit:
%Vor%Natürlich würden Sie dies dann während der Startkonfiguration wie folgt verkabeln:
%Vor%Hoffen wir, dass es anderen verlorenen Seelen hilft, die dort den Weg zu diesem Post finden, der versucht, so etwas zu tun!
Schau mal hier, ich hoffe, es kann helfen wie Sie einen Web-API-REST-Service so einstellen, dass er immer XML und nicht JSON zurückgibt
Könnten Sie es erneut versuchen, indem Sie die folgenden Schritte ausführen:
Geben Sie in WebApiConfig.Register()
Normalerweise entferne ich den XmlFormatter ganz einfach.
%Vor%Fügen Sie die obige Zeile in Ihre WebApiConfig-Klasse ...
ein %Vor%Tags und Links asp.net-web-api asp.net oauth-2.0