判断用户是否登录,阻止直接在地址栏输入网址访问

判断用户是否登录,阻止直接在地址栏输入网址访问!
web.config配置

<authentication mode="Forms"> //验证模式
      <forms loginUrl="login.aspx"></forms>  //跳转到的页面
    </authentication>
  <authorization>
        <deny users="?"/>  //拒绝匿名用户
    </authorization>


登录之后退出,发现此时在浏览器里直接输入地址可以直接跳转
原因:退出时session没有清空
解决方法:
session["user"]=null;   //把名为user的session值设为null;
Session.Remove("user");  //删除名为user的session
this.Response.Redirect("login.aspx") //之后跳转到登录页面;
登录时如果要判断session分配权限,就把session设为null面不是remove

到这里发现还是可以直接通过输入地址直接访问,
原因:浏览器缓存
解决方法:
if (!IsPostBack)
        {
      Response.Cache.SetCacheability(HttpCacheability.NoCache);//阻止浏览器记录缓存
         //以下是判断session是否为空,如果为空则跳转到登录页面
         if (Session["user"] == null || Session["user"].ToString() == "") 
            {
                this.Response.Redirect("login.aspx");
            }


这样就可以防止直接在访问某个页面了

protected void Page_Load(object sender, EventArgs e)
    {
      if (!IsPostBack)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);

          //判断是否为空,如果为空跳转到登录页面
            if (Session["user"] == null || Session["user"].ToString() == "")
            {
                this.Response.Redirect("login.aspx");
            }
            else
            {
                //分配权限,如果不是管理员将一些功能禁用
                string leixing = Session["leixing"].ToString();  //获取session的值
                if (leixing != "管理员")
                    {
                        hlkadduser.Visible = false;
                        hlkusermess.Visible = false;
                        usermanage.Visible = false;
                        sendyingjian.Visible = false;
                        fasongjilu.Visible = false;
                        sendjilu.Visible = false;

                    }
                    else
                    {
                        Label3.Visible = false;
                        Label4.Visible = false;

                        messgae.Visible = false;
                    }
                    username.Text = Session["user"].ToString();
                   
                    bind();
                
            }
        }
    }

//数据绑定
    public void bind()
    {
        try
        {
            string jifang = Session["jifang"].ToString();
            DataSet ds = DBvisit.yjmanagedb.message(jifang);
            int count = ds.Tables[0].Rows.Count;
            messgae.Text = count.ToString();
        }
        catch (Exception ce)
        {
            Console.Write(ce.Message.ToString());
        }
    }

//退出将名为user的session设为null;
    protected void lbtnclose_Click(object sender, EventArgs e)
    {
        //Session.Remove();
        Session["user"] = null;
        this.Response.Redirect("login.aspx");    //跳转页面

    }

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值