Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保护方法的授权_C#_Security_Architecture - Fatal编程技术网

C# 如何保护方法的授权

C# 如何保护方法的授权,c#,security,architecture,C#,Security,Architecture,我正在用asp.NET MVC用C#构建一个网站 我如何确保没有未经授权的人可以访问我的方法 我的意思是,我想确保只有管理员才能在我的页面上创建文章。如果我把这个逻辑放在方法中,实际上是将它添加到数据库中,那么我的数据层中不是有业务逻辑吗 在数据层和业务层之间建立一个独立的安全层是一种好的做法吗 问题是,如果我在更高的级别上进行保护,我将不得不在许多地方进行检查,很可能我错过了一个地方,用户可以绕过安全 谢谢 看看这个,它解释了如何使用动作过滤器来提供对控制器动作的授权。看看这个,它解释了如何使

我正在用asp.NET MVC用C#构建一个网站

我如何确保没有未经授权的人可以访问我的方法

我的意思是,我想确保只有管理员才能在我的页面上创建文章。如果我把这个逻辑放在方法中,实际上是将它添加到数据库中,那么我的数据层中不是有业务逻辑吗

在数据层和业务层之间建立一个独立的安全层是一种好的做法吗

问题是,如果我在更高的级别上进行保护,我将不得不在许多地方进行检查,很可能我错过了一个地方,用户可以绕过安全

谢谢

看看这个,它解释了如何使用动作过滤器来提供对控制器动作的授权。

看看这个,它解释了如何使用动作过滤器来提供对控制器动作的授权。

授权过滤器(正如pmarflee所说)是如何保护控制器的典型示例,尽管这并不总是满足您的需求(例如,如果您通过其他方式公开模型,例如,如果您也公开WCF服务)

更具全局性和灵活性的方法是在某处(您选择的位置,但通常在控制器或存储库库中)需要一个安全服务,然后以某种方式(通过参数或构造函数)传入用户上下文。是的,这意味着您必须确保在每个操作中调用该服务,但除非您决定使用某种面向方面的编程容器,否则很难避免这种情况。

授权筛选器(正如pmarflee所说)是如何保护控制器的典型示例,尽管这并不总是满足您的需求(例如,如果您通过其他方式公开模型,例如,如果您也公开WCF服务)


更具全局性和灵活性的方法是在某处(您选择的位置,但通常在控制器或存储库库中)需要一个安全服务,然后以某种方式(通过参数或构造函数)传入用户上下文。是的,这意味着您必须确保在每个操作中调用该服务,但除非您决定使用某种面向方面的编程容器,否则很难避免这种情况。

谢谢,我喜欢有几个原因的单独安全服务谢谢,我喜欢有几个原因的单独安全服务谢谢!我并不知道这个方法的存在。但我决定和保安一起去:)谢谢!我并不知道这个方法的存在。但我决定选择安全服务:)