none
关于用户身份验证和权限的问题。 RRS feed

  • 问题

  • 好像一个网站。有些模块中有删除、编辑……功能。

    但用户很多,我想指定给某个用户有删除功能。但是有一个问题,页数太多了.... 如何做好呢?
    2010年1月8日 21:28

答案

  • 你好

    仅提供参考. 你可以这样在数据库设计方面,设计权限表,和权限组表,权限组里可以设置模块的增,删,改,查(CRUD),当用户登陆后可根据数据库表示获取用户自身的对模块的操作权限.

    具体实现可参考:http://www.cnblogs.com/jyk/archive/2009/09/06/1561501.html
    啥叫乐观-得瑟的最高境界
    • 已建议为答案 sthma 2010年1月9日 15:06
    • 已编辑 极度 2010年1月11日 1:18
    • 已标记为答案 KeFang Chen 2010年1月15日 2:36
    2010年1月9日 0:59
  • 你好!

    如果是常用的按钮你可以做成一个ToolBar控件,把常用的按钮添加进去。在控件中用一个属性记录它与权限之间的对应关系,比如 ID 为 ADD  表示新增权限...你在每个页面验证的时候只需要验证这个 ToolBar 就行了。这样 70%-80% 的验证工作都做完了,余下的特殊控制再采用其它方式实现。

    知识改变命运,奋斗成就人生!
    2010年1月10日 3:00
    版主
  • 您好,如果不用自带的form验证方式,对于小型应用开发可以使用数组,当然使用hashtable,或者namevaluecollection都是可以的
    比如以hashtable来说.每一个用户对应的权限可以放入一个hashtable中,你可以将hashtable的value设置成bool类型,key设置成权限名比如:“post_delete”表示有删除帖子的权限
    然后将整个hashtable放入session中.比如要删除帖子可以使用
    hashtable au=gethashtable(username)(获得hashtable的代码,比如从数据库中获得);
    if(au["post_ldelete"])
    {
       //执行页面逻辑
    }
    else
    {
       response.write("对不起,您没有执行权限");
    }

    希望回答对你有帮助

    2010年1月11日 7:27

全部回复

  • 你好

    仅提供参考. 你可以这样在数据库设计方面,设计权限表,和权限组表,权限组里可以设置模块的增,删,改,查(CRUD),当用户登陆后可根据数据库表示获取用户自身的对模块的操作权限.

    具体实现可参考:http://www.cnblogs.com/jyk/archive/2009/09/06/1561501.html
    啥叫乐观-得瑟的最高境界
    • 已建议为答案 sthma 2010年1月9日 15:06
    • 已编辑 极度 2010年1月11日 1:18
    • 已标记为答案 KeFang Chen 2010年1月15日 2:36
    2010年1月9日 0:59
  • 但是,用户可以用连接来访问他要实现的操作....  这么在每个页中验证种权限,很麻烦...
    2010年1月9日 10:57
  • 你好!

    如果是常用的按钮你可以做成一个ToolBar控件,把常用的按钮添加进去。在控件中用一个属性记录它与权限之间的对应关系,比如 ID 为 ADD  表示新增权限...你在每个页面验证的时候只需要验证这个 ToolBar 就行了。这样 70%-80% 的验证工作都做完了,余下的特殊控制再采用其它方式实现。

    知识改变命运,奋斗成就人生!
    2010年1月10日 3:00
    版主
  • 你好!

    如果是常用的按钮你可以做成一个ToolBar控件,把常用的按钮添加进去。在控件中用一个属性记录它与权限之间的对应关系,比如 ID 为 ADD  表示新增权限...你在每个页面验证的时候只需要验证这个 ToolBar 就行了。这样 70%-80% 的验证工作都做完了,余下的特殊控制再采用其它方式实现。

    知识改变命运,奋斗成就人生!

    多谢!

    但如果用户输入“XXX.aspx”这样访问呢?
    唯今之计“问”。
    2010年1月10日 19:06
  • 首先判断用户在这个界面上是否有至少一个权限。如果没有就跳转到友好提示页面。
    知识改变命运,奋斗成就人生!
    2010年1月11日 1:14
    版主
  • 您好,如果不用自带的form验证方式,对于小型应用开发可以使用数组,当然使用hashtable,或者namevaluecollection都是可以的
    比如以hashtable来说.每一个用户对应的权限可以放入一个hashtable中,你可以将hashtable的value设置成bool类型,key设置成权限名比如:“post_delete”表示有删除帖子的权限
    然后将整个hashtable放入session中.比如要删除帖子可以使用
    hashtable au=gethashtable(username)(获得hashtable的代码,比如从数据库中获得);
    if(au["post_ldelete"])
    {
       //执行页面逻辑
    }
    else
    {
       response.write("对不起,您没有执行权限");
    }

    希望回答对你有帮助

    2010年1月11日 7:27
  • 您好,如果不用自带的form验证方式,对于小型应用开发可以使用数组,当然使用hashtable,或者namevaluecollection都是可以的
    比如以hashtable来说.每一个用户对应的权限可以放入一个hashtable中,你可以将hashtable的value设置成bool类型,key设置成权限名比如:“post_delete”表示有删除帖子的权限
    然后将整个hashtable放入session中.比如要删除帖子可以使用
    hashtable au=gethashtable(username)(获得hashtable的代码,比如从数据库中获得);
    if(au["post_ldelete"])
    {
       //执行页面逻辑
    }
    else
    {
       response.write("对不起,您没有执行权限");
    }

    希望回答对你有帮助

    多谢 !

    但是有很多页面呢?怎么操作法好些?

    唯今之计“问”。
    2010年1月23日 3:29