我正在做一个后台管理程序,有一个函数需要多个页面进行访问,也就是想通过这个函数来判断用户有没有登录该页的权限,即页面上传一个值与该用户的权限列表进行比较。不知这个如何实现?请指教!

解决方案 »

  1.   

    一个比较简单也比较塌实的方法
    在每个页面page_load里进行判断,最好不要以内感页面传值的办法
    要么使用session或者cookie保存权限信息
    要么就通过用户ID到数据库取权限信息
    判断权限可以使用的方法例:
    需要判断权限的页面一共有N个
    那权限信息就为N位,INT型
    每位数字代表一个页面的权限,0位无权限,1为有权限
    进页面前就判断对应该页面的位数的值是否为1或者0
      

  2.   

    写一个 BasePage的基类. 里面
    private void BasePage_Load(object sender, System.EventArgs e)
    {

    if (Context.User.Identity.IsAuthenticated) //判断是否登陆
    {
    if (!(Context.User is SitePrincipal))//判断是否为自定义的验证结构
    {

    SitePrincipal newUser = new SitePrincipal( Context.User.Identity.Name);
    Context.User = newUser;


    }

    }
    else
    {
    System.Web.HttpContext.Current.Response.Redirect("/book/admin/login.aspx");
    } }
    可以改成Session或者cookie可以写一些判断的方法 所有页面继承一下就可以
      

  3.   

    另外说一下,我已经将权限列表写入了SESSION。只是不知道如何写这个公共的函数,用于每个页的调用。
    private bool hasThisPower(string rankName)
    {
    ……
    }
    写了这样一个方法,问题是如果每个页面都写这样一个方法,未免有点垃圾了。
      

  4.   

    编译到起来,调用不就行了吗?namespace1
    {
      class common
     {
        private bool hasThisPower(string rankName)
       {
         ……
       }
      }}