J'essaie de créer un filtre personnalisé dans l'API Web Net Asp Net qui est comme ci-dessous mais incapable d'obtenir des informations d'en-tête.
internal class BasicAuthFilterAttribute : ActionFilterAttribute
{
private StringValues xyz;
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
var authHeader = actionContext.HttpContext.Request.Headers.TryGetValue("Basic", out xyz);
}
}
TryGetValue
renvoie toujours false mais je peux voir que Headers
contient l'en-tête "Basic". Comme je suis nouveau dans ASP.NET Core, est-ce que quelqu'un peut me guider sur ce que je fais peut-être de mal?
Merci à tous pour votre précieuse contribution, mais le code ci-dessous a fonctionné comme prévu.
actionContext.HttpContext.Request.Headers.TryGetValue("Authorization", out authorizationToken);
Celui-ci, ça va? Nous devons embrasser les nouvelles variables. :)
bool tryGetValue = actionContext.ActionArguments.TryGetValue("data", out data);
public static class HttpRequestExtension
{
public static string GetHeader(this HttpRequest request, string key)
{
return request.Headers.FirstOrDefault(x => x.Key == key).Value.FirstOrDefault();
}
}
méthode d'appel:
var Authorization = Request.GetHeader("Authorization");
var xyz = context.HttpContext.Request?.Headers["Basic"];