很简单的问题:
我经过登陆之后写了一个session["admin"]="ok"进入管理后台, 现在问题是,我如何在其它所有管理页面去检测这个值?并判断是不是有权限操作?以前ASP的做法就是写一个文件然后在每一页的头用include进来就可以了.在.net里面怎么做呢?谢谢!

解决方案 »

  1.   

    直接用就可以了if(session["admin"] == "ok")
    {
       //有权限
    }
      

  2.   

    写一个子类继承Page,在子类中进行校验,然后所有需要判断权限的页面,由继承Page改为继承这个子类。
      

  3.   

    和ASP没什么区别的,你可以用一个文件判断如
    <%
      if(Session["admin"]=="ok"||Session["admin"]!="")
         {
                 //权限操作
         }
    %>
    然后在相应的页面直接包含就可以了
    <%include file="上面的文件名"%>
      

  4.   

    Dennis_maomao(大熊猫) ( ) 信誉:100    Blog 直接用就可以了if(session["admin"] == "ok")
    {
       //有权限
    }这个我知道.但是每一个地方都得写上啊.那不很麻烦?
    page_load里面要写,还有button_click也要写.等等操作之前都要写啊?没有其它方法吗?
      

  5.   

    方法1: 每个页子调用一次,不过要是这样的话,每次改起来很麻烦。方法2:在一个类中写一个方法来判断session,在每个页子调用这个方法,如果要改的话只改那个方法就行了。方法3:写一个控件来判断session,然后把这个控件放到每个页子上就行了。方法4:写一个继承page的基类,在该类的init...方法中写判断session的代码,然后你的每个管理页的后台编码文件都承这个类就行了。
      

  6.   

    ljjable(吉) ( ) 信誉:96    Blog 和ASP没什么区别的,你可以用一个文件判断如
    <%
      if(Session["admin"]=="ok"||Session["admin"]!="")
         {
                 //权限操作
         }
    %>
    然后在相应的页面直接包含就可以了
    <%include file="上面的文件名"%>这样也可以吗?这不跟ASP一样的吗?
      

  7.   

    这个我知道.但是每一个地方都得写上啊.那不很麻烦?
    page_load里面要写,还有button_click也要写.等等操作之前都要写啊?没有其它方法吗?------------楼主你的理解有点错误啊,不是每个执行的操作之前都要写,只要在page_load里就行了,不过不要放在IsPostBack的判断中就可以了。你仔细看一下页面执行的生命周期你就回明白了。
      

  8.   

    if(Session["admin"]=="ok"||Session["admin"]!="")
    ............
      

  9.   

    你喜欢把ASP.NET当ASP来写也是没问题的
      

  10.   

    要判断,LZ不仅是要判断当前用户是否管理员,还要判断是否有相应的操作权限。只是看你怎么处理,是一LOAD页面就判断,把相应的按钮禁掉,还是点击时再判断。
      

  11.   

    if(Session["admin"].ToString()=="ok"||Session["admin"]!=null)
      

  12.   

    bluemoon0001(小天--追梦浪子)    的四个方法可行,一般可以是做一个函数调用看返回值,或直接做一个page页基类,然后把判断放在此页中进行判断权限并处理,有关继承的问题可以搜索下,非常多的。
      

  13.   


    这个我知道.但是每一个地方都得写上啊.那不很麻烦?
    page_load里面要写,还有button_click也要写.等等操作之前都要写啊?没有其它方法吗?------------楼主你的理解有点错误啊,不是每个执行的操作之前都要写,只要在page_load里就行了,不过不要放在IsPostBack的判断中就可以了。你仔细看一下页面执行的生命周期你就回明白了。------------------------
    是不是每次点击按钮之前都会先执行page_load啊?我记得好像.net里有一个Server对象的方法可以执行一个页面,不记得是哪一个了.我可以在那个页面里写一个判断,然后用这个方法在page_load里面调用就可以了是吗??
      

  14.   

    可以写个类,在需要验证的地方引用该类:Public Class admin
    Public Sub noSessionCn_AdminIdThenLogin(ByVal thePage As Page)
            'if admin not yet login ,then reject
            If thePage.Session("cn_adminid") Is Nothing Then
                thePage.Session("cn_adminRedirecturl") = thePage.Request.Url.ToString()
                thePage.Response.Redirect("adminlogin.aspx")
            End If
        End Sub
    end class需要验证的地方:
    dim theAdmin as admin=new admin
    theAdmin.noSessionCn_AdminIdThenLogin(page)
      

  15.   

    if ((string)Session["dddd"]=="OK")
    {
    //
    }
    因为SESSION是对象类不能直接进行比较,所以要进行强制类型转换
      

  16.   

    楼上帅哥,这不叫强制转换,这叫显示转换(string)null  是个异常