validate tutorial part net example definicion based asp asp.net-web-api owin katana

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" }