【问题标题】:Create a settings page创建设置页面
【发布时间】:2012-01-30 08:07:38
【问题描述】:

我正在 VS 2010 中制作一个 ASP.Net MVC 3 应用程序。我的任务是创建一个设置页面,该页面将使我的数据库中的表中的列具有特定权限(读、读/写等) .

这是我第一次有这样的任务,我不知道怎么做。

我尝试在 VS 中右键单击项目,然后转到设置。有一个链接说我的项目没有设置页面,所以我点击它来创建一个。出现了一个带有设置的表,但只有公共/内部访问修饰符。我似乎找不到写/读。

这是创建设置页面的正确方法吗?或者还有别的吗?

【问题讨论】:

  • 您创建的内容与网站中的“设置页面”无关。它用于应用程序设置存储和设置这些应用程序设置的默认值。

标签: visual-studio settings


【解决方案1】:

对不起,安德鲁。我之前很着急地回答了你的问题。所以,我认为我的答案变得很不清楚。我很抱歉。我会尽力更清楚地回答这个问题。我的回答可能会很长,希望您有足够的耐心看完这篇文章。 :-)

实际上,您的问题可以通过非常简单的方式解决。相信我!您实际上不需要设置页面。

我想你的数据库中有一个Users 表,用于存储系统的用户帐户。正确的!再说一次,我想Users 表将至少有以下这些字段。

  • UserID [ 这必须是表的主键。正确的! ]
  • 用户名
  • 密码
  • 电子邮件 [这是一种可选的。 ]

我只假设您的数据库具有这种模式。否则,必须有其他方法为您的用户在表中设置权限。

好的,在您的数据库中创建另一个名为Permissions 的表。 Permissions 表将处理您的用户在上述Users 表中的权限。好的!然后,你有两张桌子。一个是您原来的Users 表,另一个是Permissions 表。

好的!我们的新Permissions 表将至少包含以下字段:

  • ID [ 这是此表的主键。 ]
  • UserID [ 这将作为您之前的用户表中的外键。 ]
  • PermissionRead [此字段将保存boolean 数据类型,或bit 数据类型。 TrueFalse 用于 Boolean01 用于 bit。这完全取决于您使用的 DBMS 类型。 ]
  • PermissionWrite [ 再次,与PermissionRead 相同。 ]

好的,现在你有两张桌子。这些权限读写字段用于为您的用户保留权限。

如果你有我上面描述的确切的数据库架构,那么你将有如下关系:

Users table
UserID | 用户名 | 私服
U-001 |蒂姆 |密码
U-002 |吉姆 |密码

权限
ID | 用户ID | 权限读取 | 权限写入
1 | U-001 |真 |假的
2 | U-002 |真 |真的


因此,您可以看到,用户 ID U-001 的用户 Tim 具有只读权限,而 U-002 的用户 Jim 具有读写权限。

因此,您可以在特定用户登录系统时检查这些字段的条件。如果他或她具有PermissionReadTruePermissionWritefalse,则该用户具有只读权限。否则,如果两个值都为真,则该用户具有读写权限。好的!

我尽力解释了这一点,我真的希望你能理解我的回答。我真的……!!!
我的建议是,你应该先试试这个方法。而且,如果您对此感到满意,我可以进一步解释如何通过此方法设置组级别权限。好的!因为我的回答变得很长,我担心你会厌倦阅读这个...... ;-)

【讨论】:

    【解决方案2】:

    对于这样的任务,您实际上并不需要设置页面。在 ASP.Net 中授予用户权限的最简单方法是,您需要在数据库中创建一个表。让我们称之为权限
    然后在该表中创建这些字段:

    • PermissionID(你想要的数据类型)
    • UserID(这必须是用户表中的外键)
    • 读取(布尔或位类型)
    • 写入(与读取相同)
    • 两者(与读取相同)

    您有一个链接到您的用户表的表。您可以通过设置这些布尔值(true 或 false)或位(0 或 1)来设置此 Permission 表中的 Users 表中的用户的权限。
    然后,当您的用户登录系统时,您可以从该权限表中检查这些“读取”、“写入”和“两者”值,并根据这些真假值允许该特定用户。

    例如,如果某个特定的读取值只有 true 而其他值 false,那么您可以看出,该用户具有“只读”权限。

    这就是使用数据库创建用户权限的基本思想。当然,您可以使用数据库工具执行一些高级功能。但是,我认为这是最简单的方法。
    您可以在该表中添加许多所需的权限类型。
    您甚至可以使用此方法创建组。例如,授予特定组权限将授予所有用户属于该组的权限。

    祝你好运...!!!

    【讨论】:

    • 您的开场白不被您帖子的其余部分支持。如果不是通过网站上的某个页面或管理界面,这些权限究竟是如何设置的?您提议的表结构和权限结构也很成问题 - ReadWriteBoth 的三个单独字段?简单地设置ReadWrite 不是更好吗?而且您的回答忽略了它还需要一个 Permissions 表,该表描述了分配的权限。最后,您的回答并没有真正提供有关创建组或如何使用它们的任何建议。
    猜你喜欢
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多