2013-04-04 66 views
0

我在asp.net中製作了一個具有登錄功能的應用程序。接取當前用戶信息我是傳遞用戶電子郵件重定向功能類似Asp.net阻止Direct url的使用

Session["email"] = TextBox1.Text; 
Response.Redirect("home.aspx?Id=" + Session["email"]); 

通過這個我得到我的下一個頁面[email protected]

在這home.aspx頁我收到來自的Page_Load函數值這樣

string url = HttpContext.Current.Request.Url.AbsoluteUri; 
Uri myUri = new Uri(url); 
keyid = HttpUtility.ParseQueryString(myUri.Query).Get("Id"); 

問題是,當一個用戶粘貼它允許他們訪問他們的帳戶的任何用戶的直接鏈接。有沒有將這些用戶重定向到登錄頁面。

我GOOGLE了很多,但我不能能夠找到這個答案[誰從登錄頁面只能接取的賬戶進來的用戶。任何人都知道這個解決方案?

回答

1

下一頁上簡單地得到電子郵件這樣的:

string email= Session["email"] 

會話存儲服務器中,你不需要它傳遞的URL。

檢查Session["email"]是否爲空/空,如果它然後將它們重定向到登錄/帳戶頁面。

+0

+1它工作很好的傢伙。問題是當我檢查會議[「電子郵件」]是空/空它拋出空例外 – 2013-04-04 06:17:56

+0

確保其非空...然後檢查其值:http://stackoverflow.com/questions/7172910/checking-session如果是空的或不是 – highwingers 2013-04-04 06:20:59

+0

明白了吧。謝謝 – 2013-04-04 06:25:44

0

@abatishchev/@highwingers指定的答案是正確的,並且可以工作,除了一件事。

「會話不存儲在瀏覽器中,但存儲在服務器上。」

不過,從主頁中的會話獲取電子郵件似乎是要走到這裏的方式。