2008-10-15 60 views
2

我希望确保用户能够通过“区域”访问aspx页面。例如,“财务”是一些用户不应访问的安全区域。确保页面级安全性的最佳方法

结果不应该涉及诸如MVP,MVC,MVVM等模式。我正在寻找一些轻而快的事情。

为了让事情变得更容易,我有一个基类,每个aspx页面派生自。让每个页面被检查与给定userID的安全区域相比,最简单/最好的方式是什么?

谢谢。

回答

3

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

-1

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

+0

这是真的,它很容易设置和易于使用。 – stephenbayer 2008-10-15 20:32:30

1

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

2

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

创建一个acl_roles表,包含您的所有角色(Admin,Accountant,whatever,guest)和其他东西。然后将它的id和你的用户表关联起来,这样每个用户都有一个role_id。

然后定义一个acl_resources表,在其中添加“区域”在您的应用程序和他们必须访问它的最小角色。

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

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

相关问题