7

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

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

所以,我想知道是否有人对最好的方法有任何建议

  1. 维护权限并在服务器代码中使用它们
  2. 可以轻松访问 javascript 中的权限
  3. 不必为每个单独的权限向服务器发出往返请求

想法?

4

4 回答 4

2

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

于 2008-10-28T20:59:50.093 回答
2

如果您有一组明确的权限,例如“用户级别”或“用户类型”,您可以将值传递到隐藏字段中并通过 DOM 访问该值。如果您的权限更细化,您仍然可以这样做,但是您要么有很多隐藏字段,要么必须将信息编码为 XML 或 JSON 或其他格式。

您可以将它们设置为位标志,以便您可以将单个数值与掩码进行或运算,以查看用户是否具有特定活动的权限。这将非常灵活,只要您不拥有超过 32 个左右的特定“权利”,就可以在一个非常小的包(基本上是一个 unsigned 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 很好,但您不想查询服务器以获取整个页面上的每个特定权限。您将在页面加载时执行一次,设置页面的显示并将值保存在全局变量中,然后在本地引用事件函数的权限。

于 2008-10-28T21:31:24.337 回答
1

我不一定将其视为最“正确”的解决方案,但是否可以将所有权限内容保留在服务器端,并仅提供更新的 UI 而不是某种 JSON 权限系统?

您必须根据您的应用程序预期的繁忙和密集程度做出决定,但绝对值得做出任何决定

于 2008-10-28T21:03:44.627 回答
-1

将它们编码为JSON

于 2008-10-28T20:46:20.323 回答