asp.net web api - tutorial - ¿Cómo se establece katana-project para permitir solicitudes de tokens en formato json?
web api example (1)
Según la implementación actual de OAuthAuthorizationServerHandler
no puede.
private async Task InvokeTokenEndpointAsync()
{
DateTimeOffset currentUtc = Options.SystemClock.UtcNow;
// remove milliseconds in case they don''t round-trip
currentUtc = currentUtc.Subtract(TimeSpan.FromMilliseconds(currentUtc.Millisecond));
IFormCollection form = await Request.ReadFormAsync();
var clientContext = new OAuthValidateClientAuthenticationContext(
Context,
Options,
form);
await Options.Provider.ValidateClientAuthentication(clientContext);
if (!clientContext.IsValidated)
{
_logger.WriteError("clientID is not valid.");
if (!clientContext.HasError)
{
clientContext.SetError(Constants.Errors.InvalidClient);
}
await SendErrorAsJsonAsync(clientContext);
return;
}
var tokenEndpointRequest = new TokenEndpointRequest(form);
}
Por lo tanto, para intentar esto, deberá proporcionar su propia implementación de OAuthAuthorizationServerMiddleware
que sobrecargue CreateHandler
para que pueda proporcionar su propia implementación de AuthenticationHandler<OAuthAuthorizationServerOptions>
Cuando configuro un servidor de autorización OAuth en asp.net webapi 2 ¿cómo puedo configurar el extremo del token para que acepte json en lugar de una publicación codificada?
Usando la muestra http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api
Intenté enviar la aplicación / json con
{
"grant_type":"password",
"username":"Alice",
"password":"password123"
}
Recibo la respuesta 400 Bad Request
{
"error" : "unsupported_grant_type"
}
donde como tipo de contenido de la aplicación / x-www-form-urlencoded y body of grant_type=password&username=Alice&password=password123
funciona como se esperaba.
200 OK
{
"access_token" : "08cQ33ZG728AqBcj1PBsRSs4iBPc02lLCZfpaRRWLx2mH_wpQzMwGDKS7r7VgJiKUjUFaq6Xv0uguINoiB_evVbVOtvyWaqAYvc0HRjlgrbj12uQqFbUB7bgH-jiyfhumkwuTSTVHfKUhBjCuD_pbyxEbu2K5WSJpUVge_SGxnb-htm4ZNf1qKDmpEnP9IpZVeJa-KnV0m0gEmP04slMW_JrO390LzCNvXZwVk1yMNuvDakk8tWX7Y6WkFoh7vtW6xfhw3QMbmnvS6px70yMWcTksRNG2bdmi4SenhuRTJx8IsCMnz-4Co7KiCNJGF7KLeU4WzE-LSqXv3mQ30CIQ7faXoMn53p83wZ1NoXYyhsNrQD4POUns_Isb_Pax5gvpZEdyo8zr1r7wb0dS7UXvJb0PWzLHc57Pg3u0kmcizQ",
"token_type" : "bearer",
"expires_in" : 1209599,
"userName" : "Alice",
".issued" : "Wed, 30 Oct 2013 15:16:33 GMT",
".expires" : "Wed, 13 Nov 2013 15:16:33 GMT"
}