Asp.net mvc .NET内核中的多个MVC控制器具有不同的安全级别

Asp.net mvc .NET内核中的多个MVC控制器具有不同的安全级别,asp.net-mvc,asp.net-core,Asp.net Mvc,Asp.net Core,在我的ASP.NET核心MVC应用程序中,我有两个控制器,都映射了路由属性。一个只能在身份验证后访问,另一个是公共的 这就是我如何将身份验证和mvc添加到管道中的方法: app.UseMiddleware<AuthMiddleware>(); app.UseMvc(); app.UseMiddleware(); app.UseMvc(); 问题是,两者都需要身份验证,而公共身份验证则不起作用。如果我替换上述两行的顺序,公共行将起作用,但另一行不行。我是否可以以某种方式将其

在我的ASP.NET核心MVC应用程序中,我有两个控制器,都映射了路由属性。一个只能在身份验证后访问,另一个是公共的

这就是我如何将身份验证和mvc添加到管道中的方法:

  app.UseMiddleware<AuthMiddleware>();
  app.UseMvc();
app.UseMiddleware();
app.UseMvc();
问题是,两者都需要身份验证,而公共身份验证则不起作用。如果我替换上述两行的顺序,公共行将起作用,但另一行不行。我是否可以以某种方式将其分离,以便公共的一个仍然与它的路由属性映射,并在身份验证之前执行,而另一个在身份验证之后执行


(AuthMiddleware基本上检查特定的头值,并向请求线程添加一个安全主体,以便以下任何需要身份验证的代码都能正常工作。)

我不能100%确定我是否正确理解您的意思,但您只能在特定条件下使用它来实现中间件的使用/映射。

谢谢。我只是根据请求路径在AuthMiddleware中添加了一个传递。