Flo*_*Flo 5 middleware asp.net-core-mvc asp.net-core
您好,我想从中间件类中的控制器方法检查注释。
我的配置:
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);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
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" };
}
}
Run Code Online (Sandbox Code Playgroud)
我的中间件:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
在AuthMiddleware中,我想检查被调用的方法是否具有特定的注释。
我不知道这个问题是否已经过时,我今天遇到了同样的问题,我正在使用Casbin.Net包为我的asp dotnet core项目实现RBAC,我需要实现一个可以通过注释识别控制器的身份验证中间件[Authorize],所以只有这些控制器需要检查权限,其他控制器不需要,下面是我的代码
使用 casbin 与 asp dotnet core 的 rbac
你可以忽略依赖注入和casbin部分,在 中AuthzMiddleware.cs,我用来context.User.Claims.Count() > 0检查当前请求是否通过了Authentication中间件。
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |