【发布时间】:2016-12-15 10:48:02
【问题描述】:
您好,我想检查中间件类中控制器方法的注释。
我的配置:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, BackendDbContext context)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseStaticFiles();
app.UseMiddleware<AuthMiddleware>();
app.UseMvc();
BackendDbInitializer.Init(context);
}
我的控制器:
Route("api/[controller]")]
public class UserController : Controller
{
private readonly BackendDbContext _context;
public UserController(BackendDbContext context)
{
_context = context;
}
// GET api/values
[HttpGet]
[NoAuth]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
我的中间件:
public class AuthMiddleware
{
private readonly RequestDelegate _next;
public AuthMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
//Here i want to check if the called method in UserController have a annotation...
await _next.Invoke(context);
}
}
在 AuthMiddleware 中我想检查被调用的方法是否有特定的注释。
【问题讨论】:
-
中间件不知道 mvc 上下文。您需要使用过滤器来获取被调用的方法信息。
-
你能举个例子吗?
-
您是在尝试编写身份验证或授权中间件吗? ASP.NET 身份验证中间件读取请求凭据并设置 HttpContext.User。 Authorization 属性检查用户并授予或拒绝访问。
-
我希望验证
标签: asp.net-core asp.net-core-mvc middleware