2012-09-13 102 views
1

我的IIS文件夾結構是這樣如何保持URL是用戶輸入

Default Web Site---->online and Accessing with www.sitename.com/online 

Default Web Site---->trade and Accessing with www.sitename.com/trade 

Default Web Site---->private and Accessing with www.sitename.com/private 

這裏登錄頁面居住裏面的「默認Web站點---->貿易/的Login.aspx」。當用戶輸入 www.sitename.com/online或www.sitename.com/private或www.sitename.com/trade,他/她將重定向到www.sitename.com/trade/Login.aspx網址。

所以我的需求是,當用戶輸入「www.sitename.com/online」時,他/她應該保持與www.sitename.com/online相同的URL,而不是「www.sitename.com/trade/Login」。 aspx「。那麼我如何維護用戶輸入的URL。

感謝, JOBY

+0

時,鍵入「www.sitename.com/online」重定向恰好www.sitename.com/trade/Login.aspx.Here問題是貿易文件夾顯示在URL.So他們不允許這樣。相反,他們希望鏈接應該是「www.sitename.com/online」。根本沒有URL更改 –

+0

這裏的問題不是關於重定向。問題是,我應該保持URL爲靜態。(www.sitename.com/online)不是(www.sitename.com/trade/Login.aspx),即使在重定向之後。 –

回答

2
做到這一點

最好的辦法是通過一個參數W /原始地址在您的重定向到登錄頁面,然後有登錄重定向你回到那個原始地址

Location: http://example.com/login?ref=http%3A%2F%2Fexample.com%2Ffoo 

然後登錄後,讀取「ref」參數並重新定位。

+0

+1假設問題是「如何返回到原始頁面後登錄」,而不是「從不顯示.../Login.aspx在Url」 –

0

考慮使用MVC或至少將它的部分路由到ASPX頁面來呈現視圖。通過這種方式,您可以擁有任何您希望與物理文件名無關的Url。

用戶很少進入任何網址......我不確定任何人都在意,只要網址有一定的意義(或完整的非語言)。所以我認爲完全可以將登錄頁面呈現爲像/ login這樣的內容並且重定向回原始頁面。如果登錄從不離開您的網站,您可以將原始網址保存在查詢字符串中(如@chovy建議的那樣)或頁面上的隱藏元素。如果登錄離開您的站點(即進行OAuth身份驗證),那麼會話狀態或Cookie可能被放置在存儲返回Url的地方。

+0

當他們鍵入「www.sitename.com/online」重定向發生在www .sitename.com/trade/Login.aspx.Here問題是貿易文件夾顯示在URL中。所以他們不允許這個。而是他們想要的鏈接應該是「www.sitename.com/online」。根本沒有URL更改。 –

+0

@JobyKurian,那麼使用MVC的路由不適合你嗎?應該相對容易地返回正常或登錄頁面取決於狀態... –

1

如果您使用的是內置成員資格提供程序,那麼您可以使用[Authorize]屬性,該屬性具有將用戶重定向到原始頁面的功能,用戶通過身份驗證後系統會自動將用戶重定向到請求的頁面。

或者你可以嘗試以下解決方案:

事情是這樣的:

www.sitename.com/trade/Login.aspx?ReturnUrl=http%3A%2F%2Fsitemap.com%2Fonline 

用戶通過驗證後,可以將用戶重定向到請求的頁面。

Response.Redirect(Request.QueryString["ReturnUrl"]); 
+0

這裏的問題不是關於重定向。問題是,我應該保持URL爲靜態。即使在重定向之後,也不會(www.sitename.com/trade/Login.aspx)。 –

+0

Server.Transfer(「路徑」)可能會詭計。 – 2012-09-13 07:02:55

相關問題