Fel*_*eza 7 c# .net-core asp.net-core
[HttpGet]
public IActionResult Get()
{
string token = Request.Headers["Authorization"];
// Validate token.
}
[HttpPost]
public IActionResult Post(int id)
{
string token = Request.Headers["Authorization"];
// Validate token.
}
Run Code Online (Sandbox Code Playgroud)
如何在一个地方验证所有控制器的Request.Headers ["Authorization"]?
您可以创建和使用自定义中间件,您可以在其中检查标头并验证是否应将其传递给控制器.
要创建中间件类并在Startup.cs中对其进行同步,如下所示:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IConnectionManager conn, ILoggerFactory loggerFactory)
{
app.UseMiddleware<YourMidllewareClass>();
}
Run Code Online (Sandbox Code Playgroud)
在中间件类中创建Invoke方法.在每个请求跳转到任何控制器之前,将调用此方法.
public async Task Invoke(HttpContext context)
{
string token = Request.Headers["Authorization"];
//do the checking
//pass request further if correct
await _next(context);
}
Run Code Online (Sandbox Code Playgroud)
就我而言,你必须在UseMvc()方法之前重新启动你的中间件,以确保在Mvc管道之前调用你的Invoke().
| 归档时间: |
|
| 查看次数: |
4565 次 |
| 最近记录: |