代码之家  ›  专栏  ›  技术社区  ›  Vibin Jith

我可以在哪里存储我的网站的用户权限?

  •  2
  • Vibin Jith  · 技术社区  · 15 年前

    海, 我试图存储我的网站的用户权限,但是我对xml和数据库有点困惑。对于站点中的每个用户都有不同的权限。你曾经面对过这个问题吗?例如,如果“我的网站”是购物网站,则对于本地用户,“报告”菜单无需显示。销售人员不必显示购买页面。等等。。

    我想你已经理解我的问题了。我已经用xml文件完成了这个用户管理。对于每个用户,将根据菜单创建一个新节点并保存在xml文件中。下次用户登录时,检查权限并仅显示允许的菜单。

    我老板让我用数据库做同样的事情。通过使用XmlDataSource,将数据绑定到treeview(用于设置权限)和menustrip非常简单。 他指的是安全问题。我不这么认为。

    哪个更好?数据库或XML

    4 回复  |  直到 15 年前
        2
  •  1
  •   adrianos    15 年前

    我的建议是使用asp.net成员资格和角色(由Microsoft编写)。它是一个非常好的安全解决方案-登录安全性、角色(权限),并存储在SQLServer数据库中(不确定是否可以存储在其他地方)。

    我在我的网站上使用它,你可以直接使用会员控制(登录表单,更改密码等),也可以自己滚动。

    我发现的唯一棘手的地方是在我的数据库中设置成员表、视图和存储过程(您可以下载一个数据库脚本),但实际上实现起来相当简单。

    Here's a link to asp.net membership and roles

        3
  •  1
  •   Community CDub    7 年前

    ASP.NET成员资格和角色( Provider Model 只有当你需要一些基本的东西的时候,在ASP.NET 2上引入才是好的。问题是您需要使用SQL Server来使用整个系统,但是如果您计划迁移到其他数据库提供程序(MySQL、SQLite等),则必须 implement your own provider (这顶多是痛苦的),并学习如何使整件衣服相互适合。当然,找到一个 custom implementation 这很容易,但不是复制粘贴的事情。

    默认提供程序模型的另一个坏处是,您将得到大量的SQL存储过程,也称为维护噩梦。问题是,如果你的网站规模扩大,那么这些SP将使你的生活成为一个活地狱(那里),如果你甚至敢改变人质,那么你是在为一个待遇,所以我的建议将使你自己的权限层次和使用方式,你希望。同时,寻找 advices 和一些预先存在的解决方案的权限问题,这是很常见的。

        4
  •  0
  •   rie819    13 年前

    网站安全可以分为不同的部分。

    1. 身份验证:登录
    2. 身份验证:角色/权限。

    ASP.NET Forms Authentication Provider 是实现身份验证的好方法。我最近创建了一个与我们公司的X500目录(LDAP)通信的自定义提供程序。它非常直截了当。

    为了获得授权,我们实现了 entlib 安全应用程序块。它允许您将角色/权限保存在一个单独的位置,用户界面和服务层都可以访问该位置(假设您正在开发一个可伸缩的解决方案)。你可能还想看看 Windows Itentity Foundation 它将取代entlib安全应用程序块,但它只适用于.NET 4.0。