Dans mon projet WebAPI, j'ai plusieurs API qui sont décorées de [Authorize]
attribut.
[Authorize]
public HttpResponseMessage GetCustomers()
{
//my api
}
Si l'utilisateur n'a pas le jeton de droit, une exception d'accès refusé est renvoyée à l'utilisateur.
Mais ce dont j'ai besoin, c'est que dans un tel cas, je dois renvoyer le message de réponse personnalisé sous la forme.
{
"StatusCode" : 403,
"message": "You donot have sufficient permission"
}
Comment renvoyer ce message personnalisé en cas d'échec de l'autorisation.
Notez s'il vous plaît:
Il existe différentes façons de le faire, mais l'une des meilleures pourrait être les attributs d'autorisation personnalisés. Il vous suffit d'hériter de la méthode AuthorizeAttribute
et de remplacer HandleUnauthorizedRequest()
.
public class CustomAuthorization : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
actionContext.Response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.Forbidden,
Content = new StringContent("You are unauthorized to access this resource")
};
}
}
et utilisez ceci comme (CustomAuthorization
devrait être utilisé à la place de Authorize
)
[CustomAuthorization]
public IHttpActionResult Get()
{
return Ok();
}
Sinon, vous pouvez également attraper le code d'état côté client et afficher le message personnalisé de votre choix.