在ASP.NET Core Web API中,可以使用[FromHeader]
特性来绑定自定义的请求头部。
首先,在控制器的方法参数中添加一个带有[FromHeader]
特性的参数,用来接收x-api-key
头部的值。然后,在方法中使用该参数进行后续处理。
以下是一个示例代码:
[ApiController]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
public IActionResult Get([FromHeader(Name = "x-api-key")] string apiKey)
{
// 使用 apiKey 进行后续处理
if (apiKey == "my-secret-key")
{
// 头部 x-api-key 匹配成功
return Ok();
}
else
{
// 头部 x-api-key 不匹配
return Unauthorized();
}
}
}
在上述示例中,Get
方法的参数apiKey
被标记为[FromHeader(Name = "x-api-key")]
,表示它将从名为x-api-key
的头部中获取值。
当客户端发送一个包含x-api-key
头部的GET请求时,ASP.NET Core Web API将自动将该头部的值绑定到apiKey
参数上。然后,你可以根据需要使用该值进行后续处理。
请确保在请求中包含x-api-key
头部,例如:
GET /api/mycontroller HTTP/1.1
Host: localhost:5000
x-api-key: my-secret-key
这样,当请求发送到/api/mycontroller
路径时,Get
方法将会接收到my-secret-key
作为apiKey
参数的值。
希望对你有所帮助!