當用戶瀏覽網頁的時候會在某個地方需要用戶登陸才能繼續瀏覽,用戶登陸之后會自動跳轉到剛剛瀏覽的頁面。這個步驟是怎么實現的呢?net小伙在查閱相關資料實踐之后終於明白了,其實很簡單,先分享給大家吧。
當用戶在瀏覽一個頁面的時候,如果需要登錄,就在此頁面記錄當前的URL,然后傳到都登錄頁面,登錄成功之后,通過接收的值返回到上一個頁面。這里有兩種方法:
①:通過頁面傳值的方法:
先獲取當前頁面的URL:string url = Request.UrlReferrer;
通過代碼進行傳值:Response.Redirect( "/login.aspx?url= "+System.Web.HttpUtility.UrlEncode(url));
登錄成功之后加上:Response.Redirect(System.Web.HttpUtility.UrlDecode(Request.QueryString[ "url "].ToString()));
完成上面的步驟就可以實現跳轉上一個頁面了。
②:通過設置Session的值來實現此功能:
同樣先獲取當前頁面的URL:string url = Request.UrlReferrer;
然后設置Session的值:Session["url"] = url;
登錄成功之后加上:Response.Redirect(System.Web.HttpUtility.UrlDecode(Session["url"].ToString()));
設當前頁完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli
"http://"是協議名
"www.jb51.net"是域名
"aaa"是站點名
"bbb.aspx"是頁面名(文件名)
"id=5&name=kelli"是參數
【1】獲取 完整url (協議名+域名+站點名+文件名+參數)
string url=Request.Url.ToString();
url= http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli
【2】獲取 站點名+頁面名+參數:
string url=Request.RawUrl;
(或 string url=Request.Url.PathAndQuery;)
url= /aaa/bbb.aspx?id=5&name=kelli
【3】獲取 站點名+頁面名:
string url=HttpContext.Current.Request.Url.AbsolutePath;
(或 string url= HttpContext.Current.Request.Path;)
url= aaa/bbb.aspx
【4】獲取 域名:
string url=HttpContext.Current.Request.Url.Host;
url= www.jb51.net
【5】獲取 參數:
string url= HttpContext.Current.Request.Url.Query;
url= ?id=5&name=kelli
Request.RawUrl:獲取客戶端請求的URL信息(不包括主機和端口)------>/Default2.aspx
Request.ApplicationPath:獲取服務器上ASP.NET應用程序的虛擬路徑。------>/
Request.CurrentExecutionFilePath:獲取當前請求的虛擬路徑。------>/Default2.aspx
Request.Path:獲取當前請求的虛擬路徑。------>/Default2.aspx
Request.PathInfo:取具有URL擴展名的資源的附加路徑信息------>
Request.PhysicalPath:獲取與請求的URL相對應的物理文件系統路徑。------>E:\temp\Default2.aspx
Request.Url.LocalPath:------>/Default2.aspx
Request.Url.AbsoluteUri:------>http://localhost:8080/Default2.aspx
Request.Url.AbsolutePath:---------------------------->/Default2.aspx