我现在正在MVC5中构建一个应用程序。不同公司的数据存储在同一个数据库中,人们在“[授权(...)]”和其他一些服装过滤器的控制下访问它们。随着控制器和操作的增加,我越来越担心安全性,例如:是否有未经授权或授权错误的行为?
所以问题是:有没有 1.在Visual Studio中报告视图(可能不是为了完成工作而设计的) 2.第三部分工具 3.别的什么
给出所有控制器/操作的授权的清晰地图?这是一项重要的工作,我认为应该有一些解决方案,而不是检查所有这些代码文件。
感谢。
答案 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");
}
}