确保页面级安全性的最佳方法

时间:2008-10-15 20:23:07

标签: asp.net security

我希望确保用户可以通过“区域”访问aspx页面。例如,“财务”是一些用户无法访问的安全区域。

结果不应该涉及MVP,MVC,MVVM等模式。我正在寻找一些轻松快速的东西。

为了简化操作,我有一个基类,每个aspx页面都来自。给定每个页面的最简单/最好的方法是什么?与给定userID的安全区域相比?

感谢。

4 个答案:

答案 0 :(得分:3)

我用过这个,不管它是最好的方式都是值得怀疑的。我有一个从Page派生的类,称为SecurePage。在那里,我通常在数据库中有一个交叉表,列出对象(例如页面)和有权访问该页面的组/用户。使用UserID和对象名称(在本例中为页面名称,但可以是字段等)运行存储过程,它返回该用户或用户所属的组是否具有访问权限。你可以在页面init期间检查这个,如果它不匹配,那么response.redirect它们或你想做的任何事情。

答案 1 :(得分:2)

您基本上需要创建一个小的ACL实现。 (访问控制列表)。

创建一个acl_roles表,其中包含您的所有角色(管理员,会计,任何客户)和其他内容。然后将它的id与您的用户表链接,以便每个用户都有一个role_id。

然后定义一个acl_resources表,在其中添加应用中的“区域”以及访问它们所必须达到的最小角色。

然后在每个脚本的开头,只需检查当前用户是否有足够的权限进入该区域。

有更多细节,但这是基本的想法。

答案 2 :(得分:1)

是的,使用表单或Windows身份验证。您可以根据经过身份验证的用户角色轻松锁定站点的不同部分。请查看使用locations

答案 3 :(得分:-1)

为什么不直接使用.NET内置的表单身份验证等安全功能?这很容易。