使用 asp.net 做一个人力资源管理系统 ,数据库使用SqlServer2005不太懂角色的分配问题, 例如: 人事部门的档案管理: 人事专员负责登记人事档案(login.aspx),之后交给人事经理审查(check.aspx)。
怎么样才能让人事专员不能进入到check.aspx页面那 。 想了很长时间,想到可以 通过 菜单来控制,当人事专员进入系统后,不让审查的菜单出现在他的功能菜单之内。
但是这样也同时会有一个问题:若直接从URL进入便会不能阻止了……这样的问题会出现很多页面,不希望解决方案是 一次次的判断,请高手指点迷津 !

解决方案 »

  1.   

    那就考虑在每个页面分别判断权限,
    假如 check.aspx 页面只有A权限能进去,那a人进来时,先判断a人所属的角色里是否包含A权限
      

  2.   

    role不是有个现成的角色管理吗?
      

  3.   


    那就需要在每次进入页面的Load事件中都要依次判断咯?
    如果有很多页面的话,可不可以有简单一点的方法?
      

  4.   

    <?xml version="1.0" encoding="utf-8"?>
    <siteMap>
    <siteMapNode title="Root" url="" roles="角色1,角色2....">
       <siteMapNode title="主工作区" imageurl="~/pics/task_0.jpg" roles="角色1,2,3...” url="">
        <siteMapNode title="在线项目管理" roles="角色1" url="~/nav/custProject.aspx" />
        <siteMapNode title="在线项目管理1" roles="角色1" url="~/nav/custProject.aspx" />
     </siteMapNode> </siteMapNode>
    </siteMap>
    每个文件夹下再生成一个XML文件控制下就OK了
      

  5.   

    没权限表的嘛?母版页load做判断登录否,权限检查,一系列操作吖然后套用母版页的子页面不都有自动的判断了?
      

  6.   

    可以写一个公共方法 每个页面都掉用这个方法 那个方法可以判断用户是否有权限读取或者修改此页面  那个方法体里面可以从数据库读取 或者是一个XML文件读取 看你们需求了....
      

  7.   

    http://www.programbbs.com/doc/3135.htm
      

  8.   

    可以使用自定义Attribute来实现。
      

  9.   


    [AuthenticatedAttribute("12")]
    public partial class _Default : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
    }譬如这个,只要权限编号有12的都可以访问。
    自定义一个AuthenticatedAttribute继承于Attribute,PageBase类继承于Page,在PageBase类里面写验证方法。
      

  10.   

    点菜单“项目”->“ASP.NET配置”,启用角色管理,添加角色,在规则里选中check.aspx,添加规则
      

  11.   

    干吗不用IHttpModule去实现呢?
      

  12.   

    可以把所有的页面路径存储在数据库中然后对不同的角色进行判断,如果给予某个权限就在Check选中就行.