Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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
Asp.net 基于模块的安全性_Asp.net_Security_Asp.net Membership - Fatal编程技术网

Asp.net 基于模块的安全性

Asp.net 基于模块的安全性,asp.net,security,asp.net-membership,Asp.net,Security,Asp.net Membership,我正在尝试创建一个基于模块级安全性的应用程序。我们的想法是,我们将有一个用户登录,抓取那里的角色,抓取那些角色有权访问的页面,然后在这些页面中抓取他们有权访问的模块,然后抓取他们有权访问的模块内的功能(列表、创建、编辑、删除)。这样,在管理屏幕中,someon可以允许或拒绝组使用模块和模块功能 有没有人见过这样的示例项目,或者对如何实现这一点有任何线索?我真的很想在n层体系结构上尝试这一点。使用基本会员制创建您的网站。将页面分组到文件夹中,每个文件夹中都有Web.Config文件以控制访问。这在

我正在尝试创建一个基于模块级安全性的应用程序。我们的想法是,我们将有一个用户登录,抓取那里的角色,抓取那些角色有权访问的页面,然后在这些页面中抓取他们有权访问的模块,然后抓取他们有权访问的模块内的功能(列表、创建、编辑、删除)。这样,在管理屏幕中,someon可以允许或拒绝组使用模块和模块功能


有没有人见过这样的示例项目,或者对如何实现这一点有任何线索?我真的很想在n层体系结构上尝试这一点。

使用基本会员制创建您的网站。将页面分组到文件夹中,每个文件夹中都有Web.Config文件以控制访问。这在大多数情况下都是现成的功能。唯一需要编写的自定义代码是在创建管理表单时

至于细粒度访问,如果他们不能访问页面,他们就不能访问他们的方法

更新:

如果User.IsInRole(“管理员”)


在同一页面上,在代码隐藏中,您可以通过编程方式检查它们的角色,并相应地显示/启用面板/模块:-)

我将为您的页面使用基类来实现您描述的效果。在基类中,您可以添加所需的所有可用方法,但在基类中提供一个授权方法,允许方法根据允许的角色识别自己。所有这些都可以通过web.config进行配置,如果您计划好的话。很多时候,SQL成员资格的基于“文件夹”的方法不够健壮


我想作为一个例子,您可以构建自己的(或在System.Security命名空间中找到一个)安全枚举来定义访问级别,然后将AD(或任何位置)中的组的访问级别映射到枚举。然后,这些方法可以对您的用户对象使用安全枚举来确定用户的访问是否允许该功能。

谢谢您提供的信息。我了解这一点,但我想知道是否有可能有一个应用程序,其中两个角色可以访问一个页面,但在该页面中,不同的模块是基于角色加载的,以及基于roll的模块中的不同功能。这有意义吗?一个页面会有不同的模块和模块功能,这取决于用户的滚动…@Jesse:是的,请参阅更新。您可以通过编程方式检查角色,并根据用户是否担任此角色加载模块。根据您的对象设计,您可能会找到一种更优雅的方法来完成同样的事情:-)感谢您的回答和更新(为延迟道歉):)