J'ai une API Web pour consommer les données provenant de mobile Android. Cette API Web consommera le fichier multi-parties à partir des données de formulaire de la demande d'API Web. J'ai suivi l'article this pour archiver. Je voulais faire la validation d'accès personnalisée pour cette API Web, donc mis en œuvre un filtre pour valider la demande.Filtre d'action asynchrone personnalisé pour l'API Web 2
Je le filtre comme ci-dessous
public class CustAuthAsyncAttribute : ActionFilterAttribute
{
public override async Task OnActionExecutingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
InternalOnExecutingAsync(actionContext);
}
}
La méthode interne comme ce
protected void InternalOnExecutingAsync(HttpActionContext actionContext)
{
var authValue = actionContext.Request.Headers;
if (authValue.Contains("CustomAccessToken"))
{
string token = authValue.GetValues("CustomAccessToken").First();
var result = // doing some decription
if (result != null)
{
bool validationResult = // validation with database
if (!validationResult)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{ ReasonPhrase = "Invalid token" };
}
}
else
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{ ReasonPhrase = "Invalid token" };
}
}
else
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{ ReasonPhrase = "Unauthorized Request" };
}
Ces implémentations fonctionnent très bien dans l'API Outils client (exemple: Postman) si la validation passe, permet demande à la méthode.
Ce ne fonctionne pas dans l'application mobile, disant que le message de réponse l'accès non autorisé. et ne permettant pas la demande à la méthode même les validations d'accès personnalisées sont passées.
Pour votre information: Cette méthode fonctionne bien dans le mobile sans filtre
Aidez-moi à obtenir cela fonctionne dans l'application mobile aussi.
Merci d'avance.