用户权限SQL和VB.NET的实现

时间:2013-05-09 08:43:46

标签: sql database vb.net interface user-permissions

我目前正在开发一个基于SQL和VB.NET设计的项目。这个想法如下:用户有不同的权限。 administraotr授予每个用户特定的权限。这个想法如下所示:

enter image description here

例如,用户A可以获得以下权限:

他能够添加新招标,修改现有招标,增加新客户。

用户B具有以下权限:

他能够查看现有投标,添加新员工......等等。

如何在SQL和VB.NET中实现它的想法是:

使用以下字段创建名为Permission的新表:

UserID(用户ID的外键),对于每个权限,将有一个字段,因此将有12个字段。

现在,在VB.NET中将有12个按钮(即添加新招标,删除招标,......)。每个按钮将根据字段的值启用和禁用(如果字段= 1,则按钮将被启用)。

以下是一个例子:

enter image description here

enter image description here

在这种情况下,对于此用户,将启用带有红线的按钮,并根据其权限禁用其余按钮。

很明显,这种方式是SILLY,并不是专业的实施。

我需要你的建议如何加强它。

由于

1 个答案:

答案 0 :(得分:0)

理想情况下,您希望使用外部授权框架,例如微软基于声明的授权或更好的XACML - 可扩展访问控制标记语言。

当您使用外部授权时,您需要在代码中写入所有内容(如果有的话):

“我可以启用按钮foo吗?”。这是您发送给外部授权引擎的问题。如果您使用“在XACML上运行”的引擎,那么您将获得基于策略的基于属性的访问控制,您可以在其中轻松定义:

  • 分配给客户的用户可以为该客户添加投标

查看我所工作的供应商Axiomatics等开源解决方案或供应商解决方案。另请查看XACML上的可用资源,例如YouTube上的http://en.wikipedia.org/wiki/XACML或XACML视频。