代码之家  ›  专栏  ›  技术社区  ›  Llyle bonjorno

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

  •  2
  • Llyle bonjorno  · 技术社区  · 16 年前

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

    结果不应该涉及MVP、MVC、MVVM等模式。我正在寻找一些轻便且快速的方法。

    为了使事情更简单,我有一个基本类,每个ASPX页都是从这个类派生的。相对于给定用户ID的安全区域,检查每个页面最简单/最好的方法是什么?

    谢谢。

    4 回复  |  直到 16 年前
        1
  •  3
  •   stephenbayer    16 年前

    我用过这个,这是否是最好的方法,这是个严重的问题。我有一个从page派生的类,叫做securepage。在这一点上,我通常在数据库中有一个交叉表,其中列出了对象(如页面)以及可以访问该页面的组/用户。使用userid和对象名(在本例中为页面名,但可以是字段或其他)运行存储过程时,返回该用户或该用户所属的组是否具有访问权限。您可以在page init期间检查它,如果它不匹配,那么response.redirect它们或者您想做的任何事情。

        2
  •  2
  •   Francisco Soto    16 年前

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

    创建一个acl_Roles表,其中包含所有角色(管理员、会计、任何人、来宾)和内容。然后将其ID与用户表链接,这样每个用户都有一个角色ID。

    然后定义一个acl_resources表,在该表中添加应用程序中的“区域”以及它们访问该区域所需的最小角色。

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

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

        3
  •  1
  •   Kon    16 年前

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

        4
  •  -1
  •   Craig    16 年前

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