我正在讨论将相当复杂的权限从服务器传播到AJAX应用程序的最佳方法,而且我不确定采用的最佳方法。

本质上,我希望定义权限,以便我可以一次请求一整套权限,并根据需要调整UI(UI更改可以与禁用某些上下文菜单项一样低)。当然,我仍然需要强制执行权限服务器端。

所以,我想知道是否有人对

的最佳方式有任何建议
  1. 维护权限并在服务器代码中使用它们
  2. 可以轻松访问javascript中的权限
  3. 不必为每个单独的权限向服务器发出往返请求
  4. 思想?

有帮助吗?

解决方案

如果您有一组明确的权限,例如“用户级别”,或者“用户类型”,您可以在隐藏字段中向下传递值,并通过DOM访问该值。如果您的权限更细化,您仍然可以执行此操作,但是您要么拥有大量隐藏字段,要么必须将信息编码为XML或JSON或其他格式。

您可以将它们设置为位标志,以便您可以使用掩码对单个数值进行OR操作,以查看用户是否具有特定活动的权限。这将非常灵活,只要您没有超过32个特定的“权限”,就可以在非常小的包(基本上是无符号的int)中对这些权限进行任何排列。

例如:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in

然后,具有 0x000007 权限的用户可以编辑,创建和删除,但没有别的。

在任何一种情况下,我认为你都在正确的轨道上 - 每次调用请求一次,将权限存储在全局JavaScript数据结构中,然后从那里开始。 AJAX很不错,但您不希望在整个页面上查询服务器的每个特定权限。您可以在页面加载上执行一次,设置页面的表示并将值保存在全局变量中,然后在本地引用事件函数的权限。

其他提示

如果您将权限结构作为JSON对象(或XML,如果您愿意)传输到客户端,则可以使用客户端代码操作该对象,并将其发送回服务器,服务器可以执行任何操作需要验证数据并坚持下去。

我不一定认为它是最“正确”的。解决方案,但是可以保留服务器端的所有权限,只提供更新的UI而不是某种JSON权限系统吗?

你必须根据你的应用程序预期的繁忙程度和密集程度做出决定,但绝对是一个值得做出决定的决定

将它们编码为 JSON

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top