如何能隐藏地址栏里的参数?

时间:2022-08-27 23:30:38
我见过一些网站,好像地址栏里完全没有参数,是不是没有使用参数传递变量的方法或是有什么其他的办法???

33 个解决方案

#1


session传值!!

暴露属性

#2


url转向

#3


就是有可以用Request直接获取前一页的控件中的值,怎么获取?,前一页要怎么设置?

#4


引用 2 楼 ltnrain 的回复:
url转向


url转向是什么,能不能说的清楚一点···!!~

#5


为了隐藏而隐藏就没必要了,很多网站不用参数是应用了静态页技术。

多数无关紧要的参数放心大胆的用QueryString吧,关键的一些值可以用Session存。

#6


可以在传递之前加密,传递之后解密来实现保护的效果。

#7


引用 5 楼 tuoshi 的回复:
为了隐藏而隐藏就没必要了,很多网站不用参数是应用了静态页技术。

多数无关紧要的参数放心大胆的用QueryString吧,关键的一些值可以用Session存。


静态页面技术?静态页面技术怎么用啊····??

#8


url重写(微软的网站全部都是URL重写的)    静态页面(个大门户网站)
就是有可以用Request直接获取前一页的控件中的值,怎么获取?,前一页要怎么设置?
这个应该是post提交了吧!    前一个页面设置表单的提交为post 然后在页面接受就可以了

#9


表单post提交

#10


引用 9 楼 dengxiao1981 的回复:
表单post提交


我设置了第一个页面是这样的Defaut1.aspx页面的表单是这样<form id="form1" method="post" runat="server" >然后在Default1.aspx.cs里是这样挑战到Response.Redirect("Default2.aspx"),

但是在Default2.aspx.cs里面如下:
    protected void Page_Load(object sender, EventArgs e)
    {
         //但是在此根本获得不到前一页的hidden1里面的值??怎么回事,我哪里设置的不对??
         Response.Write(Request.Form["hidden1"].ToString());
    }

#11


引用 7 楼 lxy_lxy 的回复:
引用 5 楼 tuoshi 的回复:
为了隐藏而隐藏就没必要了,很多网站不用参数是应用了静态页技术。

多数无关紧要的参数放心大胆的用QueryString吧,关键的一些值可以用Session存。




静态页面技术?静态页面技术怎么用啊····??


比如说 这个帖子的 地址 http://topic.csdn.net/u/20091012/11/9ecf2f97-8808-4ca3-a2db-54e69998051a.html  就是用了 静态页面技术  也称作伪静态 

网上很多的

#12


1.表单post提交
2.伪表态:http://www.xifuquan.cn/product/cx-5-0-0-1.html
cx是伪表态名
5是ID,直接获取reqest("id")就行了

#13


url重写
网站静态化

#14


url重写,看看httpmodel

#15



using System; 
  using System.Data; 
  using System.Configuration; 
  using System.Web; 
  using System.Web.Security; 
  using System.Web.UI; 
  using System.Web.UI.WebControls; 
  using System.Web.UI.WebControls.WebParts; 
  using System.Web.UI.HtmlControls; 
  using System.Text; 
  using System.IO; 
  /**////  
  /// Summary description for HtmlProxy 
  ///  
  public class HtmlProxy 
  ...{ 
  public HtmlProxy() 
  ...{ 
  } 
  public static bool ChangeFile(int id) 
  ...{ 
  string filename = HttpContext.Current.Server.MapPath("Post_" + id + ".html"); 
  //尝试读取已有文件   Stream st = GetFileStream(filename); 
  //如果文件存在并且读取成功 
  if (st != null) 
  ...{ 
  using (st) 
  ...{ 
  StreamToStream(st, HttpContext.Current.Response.OutputStream); 
  return true; 
  //Response.End(); 
  } 
  } 
  else 
  ...{ 
  StringWriter sw = new StringWriter(); 
  HttpContext.Current.Server.Execute("ForumDetail.aspx?PID=" + id, sw); 
  string content = sw.ToString(); 
  //写进文件

try 
  ...{ 
  using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Write)) 
  ...{ 
  using (StreamWriter stw = new StreamWriter(fs, HttpContext.Current.Response.ContentEncoding)) 
  ...{ 
  stw.Write(content); 
  } 
  } 
  return true; 
  } 
  catch ...{ return false; } 
  } 
  } 
  private static Stream GetFileStream(string filename) 
  ...{ 
  try 
  ...{ 
  DateTime dt = File.GetLastWriteTime(filename); 
  TimeSpan ts = dt - DateTime.Now; 
  if (ts.TotalHours >1) 
  ...{ 
  //一小时后过期 
  return null; 
  } 
  return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); 
  } 
  catch ...{ return null; } 
  } 
  static public void StreamToStream(Stream src, Stream dst) 
  ...{ 
  byte[] buf = new byte[4096]; 
  while (true) 
  ...{ 
  int c = src.Read(buf, 0, buf.Length); 
  if (c == 0) 
  return; 
  dst.Write(buf, 0, c); 
  } 
  } 
  } 
  在页面文件中,ForURL.aspx的后台代码如下: 
  protected void Page_Load(object sender, EventArgs e) 
  ...{ 
  try 
  ...{ 
  int id = int.Parse(Request.QueryString["PID"]); 
  if(HtmlProxy.ChangeFile(id)) 
  ...{ 
  Response.Redirect("Post_" + id + ".html"); 
  } 
  else 
  ...{ 
  Response.Redirect("Post.aspx?PID=" + id ); 
  } 
  } 
  catch ...{ 
  } 
  }

#16


第一种:用post提交数据!
第二种:有表单当中的隐藏域控件绑定值来提交数据!
第三种:用Response.redrect("a.aspx?id=<%# eval("id")%>")提交数据!
第四种:用Response.write("<script>window.location('a.aspx?id=1')</script>")

#17


加密 --解密

#18


该回复于2009-10-13 09:05:40被版主删除

#19


<form id="" runat="server" method="post">
....
</form>
method="post"
这样就行了吧

#20


引用 10 楼 lxy_lxy 的回复:
引用 9 楼 dengxiao1981 的回复:
表单post提交


我设置了第一个页面是这样的Defaut1.aspx页面的表单是这样 <form id="form1" method="post" runat="server" >然后在Default1.aspx.cs里是这样挑战到Response.Redirect("Default2.aspx"),

但是在Default2.aspx.cs里面如下:
    protected void Page_Load(object sender, EventArgs e)
    {
     //但是在此根本获得不到前一页的hidden1里面的值??怎么回事,我哪里设置的不对??
       Response.Write(Request.Form["hidden1"].ToString());
    }

1.使用server.transfer跳转:
Server.Transfer("Default2.aspx");
2.使用previouspage
string s = ((HiddenField)this.PreviousPage.FindControl("HiddenField1")).Value;
        Response.Write(s);

#21


方法特别多,看你怎样选择可以session传值
可以url转移
重写都行 

#22


伪静态 
将参数给隐藏掉

#23


加密比较好点

#24


url重写,或全站静态了

#25


1. Post提交
2. 加密解密 - 这个方法是我一直在用的

#26


session

#27


引用 3 楼 lxy_lxy 的回复:
就是有可以用Request直接获取前一页的控件中的值,怎么获取?,前一页要怎么设置?

目标页面Request.Form["这里写控件的name属性"]

#28


用了HiddenField post提交

#29


伪静态就行
http://blog.csdn.net/21aspnet/archive/2009/05/13/4178735.aspx

#30


伪静态

#31


百度:url重写

#32


用这类的Response.redrect跳转是影响性能的

#33


该回复于2011-05-03 15:06:25被版主删除

#1


session传值!!

暴露属性

#2


url转向

#3


就是有可以用Request直接获取前一页的控件中的值,怎么获取?,前一页要怎么设置?

#4


引用 2 楼 ltnrain 的回复:
url转向


url转向是什么,能不能说的清楚一点···!!~

#5


为了隐藏而隐藏就没必要了,很多网站不用参数是应用了静态页技术。

多数无关紧要的参数放心大胆的用QueryString吧,关键的一些值可以用Session存。

#6


可以在传递之前加密,传递之后解密来实现保护的效果。

#7


引用 5 楼 tuoshi 的回复:
为了隐藏而隐藏就没必要了,很多网站不用参数是应用了静态页技术。

多数无关紧要的参数放心大胆的用QueryString吧,关键的一些值可以用Session存。


静态页面技术?静态页面技术怎么用啊····??

#8


url重写(微软的网站全部都是URL重写的)    静态页面(个大门户网站)
就是有可以用Request直接获取前一页的控件中的值,怎么获取?,前一页要怎么设置?
这个应该是post提交了吧!    前一个页面设置表单的提交为post 然后在页面接受就可以了

#9


表单post提交

#10


引用 9 楼 dengxiao1981 的回复:
表单post提交


我设置了第一个页面是这样的Defaut1.aspx页面的表单是这样<form id="form1" method="post" runat="server" >然后在Default1.aspx.cs里是这样挑战到Response.Redirect("Default2.aspx"),

但是在Default2.aspx.cs里面如下:
    protected void Page_Load(object sender, EventArgs e)
    {
         //但是在此根本获得不到前一页的hidden1里面的值??怎么回事,我哪里设置的不对??
         Response.Write(Request.Form["hidden1"].ToString());
    }

#11


引用 7 楼 lxy_lxy 的回复:
引用 5 楼 tuoshi 的回复:
为了隐藏而隐藏就没必要了,很多网站不用参数是应用了静态页技术。

多数无关紧要的参数放心大胆的用QueryString吧,关键的一些值可以用Session存。




静态页面技术?静态页面技术怎么用啊····??


比如说 这个帖子的 地址 http://topic.csdn.net/u/20091012/11/9ecf2f97-8808-4ca3-a2db-54e69998051a.html  就是用了 静态页面技术  也称作伪静态 

网上很多的

#12


1.表单post提交
2.伪表态:http://www.xifuquan.cn/product/cx-5-0-0-1.html
cx是伪表态名
5是ID,直接获取reqest("id")就行了

#13


url重写
网站静态化

#14


url重写,看看httpmodel

#15



using System; 
  using System.Data; 
  using System.Configuration; 
  using System.Web; 
  using System.Web.Security; 
  using System.Web.UI; 
  using System.Web.UI.WebControls; 
  using System.Web.UI.WebControls.WebParts; 
  using System.Web.UI.HtmlControls; 
  using System.Text; 
  using System.IO; 
  /**////  
  /// Summary description for HtmlProxy 
  ///  
  public class HtmlProxy 
  ...{ 
  public HtmlProxy() 
  ...{ 
  } 
  public static bool ChangeFile(int id) 
  ...{ 
  string filename = HttpContext.Current.Server.MapPath("Post_" + id + ".html"); 
  //尝试读取已有文件   Stream st = GetFileStream(filename); 
  //如果文件存在并且读取成功 
  if (st != null) 
  ...{ 
  using (st) 
  ...{ 
  StreamToStream(st, HttpContext.Current.Response.OutputStream); 
  return true; 
  //Response.End(); 
  } 
  } 
  else 
  ...{ 
  StringWriter sw = new StringWriter(); 
  HttpContext.Current.Server.Execute("ForumDetail.aspx?PID=" + id, sw); 
  string content = sw.ToString(); 
  //写进文件

try 
  ...{ 
  using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Write)) 
  ...{ 
  using (StreamWriter stw = new StreamWriter(fs, HttpContext.Current.Response.ContentEncoding)) 
  ...{ 
  stw.Write(content); 
  } 
  } 
  return true; 
  } 
  catch ...{ return false; } 
  } 
  } 
  private static Stream GetFileStream(string filename) 
  ...{ 
  try 
  ...{ 
  DateTime dt = File.GetLastWriteTime(filename); 
  TimeSpan ts = dt - DateTime.Now; 
  if (ts.TotalHours >1) 
  ...{ 
  //一小时后过期 
  return null; 
  } 
  return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); 
  } 
  catch ...{ return null; } 
  } 
  static public void StreamToStream(Stream src, Stream dst) 
  ...{ 
  byte[] buf = new byte[4096]; 
  while (true) 
  ...{ 
  int c = src.Read(buf, 0, buf.Length); 
  if (c == 0) 
  return; 
  dst.Write(buf, 0, c); 
  } 
  } 
  } 
  在页面文件中,ForURL.aspx的后台代码如下: 
  protected void Page_Load(object sender, EventArgs e) 
  ...{ 
  try 
  ...{ 
  int id = int.Parse(Request.QueryString["PID"]); 
  if(HtmlProxy.ChangeFile(id)) 
  ...{ 
  Response.Redirect("Post_" + id + ".html"); 
  } 
  else 
  ...{ 
  Response.Redirect("Post.aspx?PID=" + id ); 
  } 
  } 
  catch ...{ 
  } 
  }

#16


第一种:用post提交数据!
第二种:有表单当中的隐藏域控件绑定值来提交数据!
第三种:用Response.redrect("a.aspx?id=<%# eval("id")%>")提交数据!
第四种:用Response.write("<script>window.location('a.aspx?id=1')</script>")

#17


加密 --解密

#18


该回复于2009-10-13 09:05:40被版主删除

#19


<form id="" runat="server" method="post">
....
</form>
method="post"
这样就行了吧

#20


引用 10 楼 lxy_lxy 的回复:
引用 9 楼 dengxiao1981 的回复:
表单post提交


我设置了第一个页面是这样的Defaut1.aspx页面的表单是这样 <form id="form1" method="post" runat="server" >然后在Default1.aspx.cs里是这样挑战到Response.Redirect("Default2.aspx"),

但是在Default2.aspx.cs里面如下:
    protected void Page_Load(object sender, EventArgs e)
    {
     //但是在此根本获得不到前一页的hidden1里面的值??怎么回事,我哪里设置的不对??
       Response.Write(Request.Form["hidden1"].ToString());
    }

1.使用server.transfer跳转:
Server.Transfer("Default2.aspx");
2.使用previouspage
string s = ((HiddenField)this.PreviousPage.FindControl("HiddenField1")).Value;
        Response.Write(s);

#21


方法特别多,看你怎样选择可以session传值
可以url转移
重写都行 

#22


伪静态 
将参数给隐藏掉

#23


加密比较好点

#24


url重写,或全站静态了

#25


1. Post提交
2. 加密解密 - 这个方法是我一直在用的

#26


session

#27


引用 3 楼 lxy_lxy 的回复:
就是有可以用Request直接获取前一页的控件中的值,怎么获取?,前一页要怎么设置?

目标页面Request.Form["这里写控件的name属性"]

#28


用了HiddenField post提交

#29


伪静态就行
http://blog.csdn.net/21aspnet/archive/2009/05/13/4178735.aspx

#30


伪静态

#31


百度:url重写

#32


用这类的Response.redrect跳转是影响性能的

#33


该回复于2011-05-03 15:06:25被版主删除