有权获取应用程序的MVC授权统计信息吗?

时间:2015-04-24 02:48:42

标签: asp.net-mvc authentication model-view-controller

我现在正在MVC5中构建一个应用程序。不同公司的数据存储在同一个数据库中,人们在“[授权(...)]”和其他一些服装过滤器的控制下访问它们。随着控制器和操作的增加,我越来越担心安全性,例如:是否有未经授权或授权错误的行为?

所以问题是:有没有 1.在Visual Studio中报告视图(可能不是为了完成工作而设计的) 2.第三部分工具 3.别的什么

给出所有控制器/操作的授权的清晰地图?这是一项重要的工作,我认为应该有一些解决方案,而不是检查所有这些代码文件。

感谢。

1 个答案:

答案 0 :(得分:0)

因此,我喜欢使用FluentSecurity。来自他们的文档:

  

忽略缺少的配置

     

默认情况下,如果缺少FluentSecurity将抛出异常   控制器操作遇到配置。如果你不这样做   希望FluentSecurity能够处理所有控制器的安全性   告诉它忽略丢失的配置。您可以通过添加来完成此操作   configuration.IgnoreMissingConfiguration();到你的配置   表达

它将安全配置放在一个文件中,使它们可以单元测试,并且通常很有用。有一个小的学习曲线来确定如何引导它并设置它。您可以使用nuget安装它并快速开始。

除此之外,我所知道的任何工具都没有可以进行您所询问的报告......除非您想针对每种操作方法编写一系列单元测试:

[TestFixture]
public class AccountControllerTests {

    [Test]
    public void Verify_ChangePassword_Method_Is_Decorated_With_Authorize_Attribute() {
        var controller = new AccountController();
        var type = controller.GetType();
        var methodInfo = type.GetMethod("ChangePassword", new Type[] { typeof(ChangePasswordModel) });
        var attributes = methodInfo.GetCustomAttributes(typeof(AuthorizeAttribute), true);
        Assert.IsTrue(attributes.Any(), "No AuthorizeAttribute found on ChangePassword(ChangePasswordModel model) method");
    }
}