防止用户不登陆直接输入网址访问页面?

解决方案 »

  1.   

    下面的文章,有些地方不是很明白.在ASP.NET中,session.setattribute(userid,userid); 写在什么地方?在服
    务端程序中加入下面一段代码:


    httpsession session = request.getsession(true); 
    if(session.isnew())
    {
    response.sendredirect(login.htm);
    }
    else
    {
    string userid = (string)session.getattribute(userid);
    if(userid == null)
    response.sendredirect(login.htm);
    else
    {

    :写在什么地方???
    原文:
    利用session对象防止未授权用户访问系统页面
    最近用java做了一个b/s系统,为了防止未登陆用户访问系统,我采用了session对象来实现。如果用户通
    过登陆页面登陆系统,在登陆成功后,用session.setattribute(userid,userid);往session对象中写入用户id。我在服
    务端程序中加入下面一段代码:


    httpsession session = request.getsession(true); 
    if(session.isnew())
    {
    response.sendredirect(login.htm);
    }
    else
    {
    string userid = (string)session.getattribute(userid);
    if(userid == null)
    response.sendredirect(login.htm);
    else
    {


    如果用户没通过登陆页面,session对象肯定是新创建的。
    如果用户访问过系统的其他不需登陆就可以访问的页面,这时session对象已经创建,session.isnew()返回
    false。那么需要判断userid是否为空『因为如果userid不存在session.getattribute(userid)会返回null』,如
    果没有通过登陆页面,userid肯定为空,从而有效防止了未授权用户访问系统页面。
      

  2.   

    修改配置文件web.config就可以 <authentication mode="Forms">
    //下面的name应该时工程名称
    //loginurl为登陆验证页面
    <forms name="Germany" loginUrl="adminstrator/adminlogin.aspx"/>
    </authentication> <authorization>
    <deny users="*"/>//拒绝所有用户
    <!-- 允许所有用户 -->
    <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
    </authorization>/////////////////////////////////////////
    //登陆页面代码如下Session["uid"] = myset.Tables[0].Rows[0]["username"].ToString();
           //主要时下面这一句,这样就OK了
     FormsAuthentication.SetAuthCookie(Session["uid"], false);
      

  3.   

    在每个程序的load事件里加上if (Session[MyDB.SESSIONCD] == null)
    {            
        //----Login画面に遷移する
        Response.Redirect("index.aspx?MSG=ログインしてください");
       return;
    }然后在index里,取用户资料,并存在SESSION里
      

  4.   

    直接用Session["uid"]="***";取的时候用Session["uid"].ToString();
      

  5.   

    MyDB.SESSIONCD 的MyDB 是什么?能说具体点么?
      

  6.   

    我的想法是  在登陆页面里 随便添加一个Session,并随便附一个值,然后在其他页面的PAGE_LOAD里判断Session是否为空,请问这样可以么?
      

  7.   

    1,用户登录的时候如果成功保存用户名等信息到Session 去
    2,母版后台,用户后台程序,Session来判断是否存在
      

  8.   

    不允许Session 为空就可以跳转页面了,当然你要判断要登录了才给Session 赋值,否则没有登录Session 就是为空。