【发布时间】:2019-09-11 13:43:14
【问题描述】:
我有一个 .net 核心应用程序,它同时用作 api 网关和身份验证服务。身份验证控制器如下所示:
[AllowAnonymous]
[HttpPost, Route("request")]
public IActionResult RequestToken([FromBody] TokenRequest request)
{
string token = "";
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (_authService.IsAuthenticated(request, out token))
{
return Ok(token);
}
return BadRequest("Invalid Request");
}
有没有办法创建一个可以区分请求 url 的中间件,这样我就可以在它像“/auth”和“OTHERS”这样的时候将它重定向到控制器。 “其他”应重定向到服务,该服务在 Configure 方法中运行以下内容:
app.Run(async (context) =>
{
using (var serviceScope = app.ApplicationServices.CreateScope())
{
var routing = serviceScope.ServiceProvider.GetService<IRoutingService>();
var content = await routing.RouteRequest(context.Request);
await context.Response.WriteAsync(await content.Content.ReadAsStringAsync());
content.Dispose();
// Seed the database.
}
});
【问题讨论】:
标签: asp.net-core microservices