C# 如何保护方法的授权
我正在用asp.NET MVC用C#构建一个网站 我如何确保没有未经授权的人可以访问我的方法 我的意思是,我想确保只有管理员才能在我的页面上创建文章。如果我把这个逻辑放在方法中,实际上是将它添加到数据库中,那么我的数据层中不是有业务逻辑吗 在数据层和业务层之间建立一个独立的安全层是一种好的做法吗 问题是,如果我在更高的级别上进行保护,我将不得不在许多地方进行检查,很可能我错过了一个地方,用户可以绕过安全 谢谢 看看这个,它解释了如何使用动作过滤器来提供对控制器动作的授权。看看这个,它解释了如何使用动作过滤器来提供对控制器动作的授权。授权过滤器(正如pmarflee所说)是如何保护控制器的典型示例,尽管这并不总是满足您的需求(例如,如果您通过其他方式公开模型,例如,如果您也公开WCF服务) 更具全局性和灵活性的方法是在某处(您选择的位置,但通常在控制器或存储库库中)需要一个安全服务,然后以某种方式(通过参数或构造函数)传入用户上下文。是的,这意味着您必须确保在每个操作中调用该服务,但除非您决定使用某种面向方面的编程容器,否则很难避免这种情况。授权筛选器(正如pmarflee所说)是如何保护控制器的典型示例,尽管这并不总是满足您的需求(例如,如果您通过其他方式公开模型,例如,如果您也公开WCF服务)C# 如何保护方法的授权,c#,security,architecture,C#,Security,Architecture,我正在用asp.NET MVC用C#构建一个网站 我如何确保没有未经授权的人可以访问我的方法 我的意思是,我想确保只有管理员才能在我的页面上创建文章。如果我把这个逻辑放在方法中,实际上是将它添加到数据库中,那么我的数据层中不是有业务逻辑吗 在数据层和业务层之间建立一个独立的安全层是一种好的做法吗 问题是,如果我在更高的级别上进行保护,我将不得不在许多地方进行检查,很可能我错过了一个地方,用户可以绕过安全 谢谢 看看这个,它解释了如何使用动作过滤器来提供对控制器动作的授权。看看这个,它解释了如何使
更具全局性和灵活性的方法是在某处(您选择的位置,但通常在控制器或存储库库中)需要一个安全服务,然后以某种方式(通过参数或构造函数)传入用户上下文。是的,这意味着您必须确保在每个操作中调用该服务,但除非您决定使用某种面向方面的编程容器,否则很难避免这种情况。谢谢,我喜欢有几个原因的单独安全服务谢谢,我喜欢有几个原因的单独安全服务谢谢!我并不知道这个方法的存在。但我决定和保安一起去:)谢谢!我并不知道这个方法的存在。但我决定选择安全服务:)