您的位置:首页 > 其它

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

2012-10-29 15:13 375 查看
判断用户是否登录,阻止直接在地址栏输入网址访问!

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");    //跳转页面

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐