Bonjour,

Je travail en Framework 4.8 (pas le choix) et je mets en place une authentification de type bearer.
Pour des raison de sécurité, je souhaite autoriser uniquement un appel en POST pour la demande de token.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class AuthorizationServerProvider : OAuthAuthorizationServerProvider
{
    public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
    {
        if (!context.Request.Method.Equals(HttpMethod.Post.Method, StringComparison.OrdinalIgnoreCase))
        {
            context.Response.StatusCode = (int)HttpStatusCode.MethodNotAllowed;
            context.SetError("invalid_request", "The request method must be POST.");
            return Task.FromResult(0);
        }
 
        context.Validated();
        return Task.FromResult(0);
    }
}
Mon retour est bien le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
{
    "error": "invalid_request",
    "error_description": "The request method must be POST."
}
Mais le code retour HTTP de l'appel reste 400 alors que j'attends 405.
Lorsque je mets un point d'arrêt à la ligne 9, j'ai bien le 405 dans context.Response.StatusCode.

Une idée de ce qui ne va pas ?
Merci.