就是关于权限的设置,比如说,某个用户可以访问某个页面,某个用户不能访问某个页面。这个倒容易实现。我们可以实现定义好一些权权限。但问题是实际上,需要动态的去设置某个页面的某个区域某些人能看。简单的说,有个所有员工的列表,但是只有总经理才可以查看工资那一列,同时总经理可以指定某个用户暂时查看工资这一列。当然,更多的情况下,这个区域权限设置是不固定的。这些如何做到?如何动态灵活的设置。

解决方案 »

  1.   

    数据绑定时处理 如gridview的RowDataBound ,listview、repeater的ItemDataBound等
      

  2.   


    好像你问的全都是页面问题。既然你说过不用任何控件,那么我正好可以抛开后台组件设计问题。如果从简单的界面类型角度,那么你就可以将你的所谓权限规定到某个页面的某个cssclass上就行了。
      

  3.   

    你不是自己拼字符串输出html么?那么这时候你肯定拼了class属性出去。这时候,先去检查权限就行了。实际上,就算考虑asp.net组件编程,从cssclass考虑也是可以的。所有web控件,比如说Panel,都有cssclass属性,并且这个属性中可以定义多个css类型。那么你的程序可以检测这个属性中的各个css类型,假设在禁止之列,就设置这个web控件的Visible为False就行了(这可以保证不会输出内部的html到客户端)。对于纯粹的ajax程序,它动态向后台获取数据并根据数据动态生成html元素的流程,它就可以先用界面类型来查询一下后台是否允许它显示,只有允许的它才真正去查询数据。
      

  4.   

    其实这也是我们对asp.net诟病的一个地方与lz不同的是,我们不认为控件的内存或输入流有啥问题。问题反倒是你这样的东西,在asp.net里是个麻烦事这问题放到现在的来说,是AOP方面的东西。权限本身是呈面状散布在系统各处。asp.net控件特殊的生存期和事件机制,导致你很难统一监管这种面状散布要求,虽然现在有MEF,甚至有MEF for webform 单纯的方法,属性统一注入监控没啥问题,一旦设计到事件处理就麻烦了,对事件拦截处理得涉及到一些底层的改造了所以老p也说,有时候适当配合service和ajax到显得更容易处理。ps:asp.net mvc因为抛弃了事件机制,所以在权限特性,AOP处理这块相对容易很多。
      

  5.   

    你可以将显示的数据分别放在不同的div或者table里。判断的时候如果权限不够,就把相应的div或table隐藏,你可以用display:none或者在div或者table里加上runat='server'然后用Visible=false
      

  6.   

    LZ是大牛的,年薪12W,这个问题还算问题?
    估计拿我们打镲呢~~
      

  7.   

    这个程序我刚好做过
    首先我对楼主对棘手的问题,只出20分表示鄙视。我是这样处理的,在每个页面中放入一个.ascx文件
    然后在这个文件中进行处理具体实现方法是
    A.用户表
    B.页面列表表(放入所有页面的URL)
    C.用户权限表(每个用户允许访问的页面,一一写入)
    包含文件中判断 HttpContext.Current.Request.Path 是否存在于数据表
    存在则允许访问,不存在跳转页面
      

  8.   

    在页面用数据源绑定控件 后天 用ItemDataBind 遍历数据
    先判断权限在遍历。