2017-08-26 47 views
4

让我们假设我有一个控制器,其中有一些角色的路由和其他角色的其他路由器。我想让代码更加清晰,将这些路线分成部分类。我知道我可以做到。在ASP.NET中具有不同属性的部分控制器MVC

但我想知道如果我能做到这样:

[Authorize(Roles = "Admin")] 
[MyLogger] 
public partial class TheController{ 
    // Admin routes 
} 

[Authorize(Roles = "OtherRole")] 
public partial class TheController{ 
    // Other routes that require auth 
} 

[AllowAnonymous] 
public partial class TheController{ 
    // public routes 
} 

和每个部分类内部路由只得到属性到那个部分类。

可能吗?

+0

我假设你想要的是区域 - 请参阅[使用区域组织应用程序](https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas) –

+0

我阅读了链接但如果我理解得很好,创建一个不同的控制器就没有区别。与一个区域的网址也将改变,这是正确的?。 PS这是一项宁静的服务,我没有意见。 我的情况,我已经有了生产中的所有论文路线,并且只是重新组织代码以便将属性更改为这些路由组,所以我不想更改任何网址 –

+1

您无法通过使用多个控制器与您所显示的名称相同 –

回答

0

在您的示例中,只有一个具有两个属性的类TheController。最好的方法是让两条路线和一条路线约束不受限于任何允许基于角色的参数。

相关问题