2013-05-09 79 views
0

我目前正在研究一个基于SQL和VB.NET设计的项目。这个想法如下:对用户有不同的权限。管理员授予每个用户特定的权限。这个想法被示为以下几点:执行用户权限SQL和VB.NET

enter image description here

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

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

用户B具有以下权限:

他能够查看现有的招标,增加新员工,...等等。

如何实现它的SQL和VB.NET的理念是:

创建一个名为许可具有以下字段的新表:

用户ID(用户ID外键),每个许可会有单个字段,所以会有12个字段。

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

下面是一个例子:

enter image description here

enter image description here

在这种情况下,该用户与红线的按钮将被启用,其余部分将根据他的权限被禁用, 。

很显然,这种方式是SILLY,并不是专业的执行。

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

感谢

回答

0

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

当您使用外部化的授权,所有你需要在你的代码写的(如果有的话)是:

“我可以启用按钮富?”。这是您发送给外部授权引擎的问题。如果您使用“运行在XACML”的引擎,那么你得到的基于策略的,基于属性的访问控制,你可以很容易的定义:分配给客户

  • 用户可以为客户添加招标

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

+0

您还可以使用Microsoft的授权管理器(http://msdn.microsoft.com/zh-cn/library/bb897401.aspx) – 2013-05-10 10:39:36