Vor etwa einem Monat hatte ich ein Projekt perfekt mit ASP Identity OAuth. Ich würde eine POST-Anfrage an den/Token-Endpunkt mit grant_type, Benutzername und Passwort senden, und alles war gut.Immer 'invalid_client' Fehler beim POSTing an/Token-Endpunkt mit ASP Identity 2
Ich habe vor kurzem ein neues Projekt gestartet, das auf der SPA-Vorlage von Visual Studio 2013 RC2 basiert. Es ist ein bisschen anders als die alte Vorlage. Die Authentifizierung ist auf sehr einfache Standardwerte eingestellt,
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
//AuthorizeEndpointPath = new PathString("/Account/Authorize"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
Nichts wesentlich von der Standardvorlage geändert. Ich kann Konten erfolgreich über eine von mir implementierte Web-API-Controller-Methode registrieren.
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (ModelState.IsValid)
{
var user = new TunrUser() { UserName = model.Email, Email = model.Email, DisplayName = model.DisplayName };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
return Created(new Uri("/api/Users/" + user.Id,UriKind.Relative), user.toViewModel());
}
else
{
return BadRequest(result.Errors.First());
}
}
return BadRequest(ModelState);
}
Doch egal, was ich zu dem/Token-Endpunkt Post, ich immer die gleiche Antwort bekommen.
{"error":"invalid_client"}
Normalerweise gebe ich folgende Anfrage Körper
grant_type=password&username=user%40domain.com&password=userpassword
Aber dies führt zu den gleichen Fehler. Dies funktionierte im vorherigen VS2013 SPA Template/Identity. Was hat sich geändert?
Vielen Dank!
Wenn Sie die ValidateClientAuth außer Kraft setzen, müssen Sie auch context.Validated nennen(); damit es funktioniert. –