2013-07-07 123 views
1

我在ASP.NET頁面中傳遞int值時遇到了問題。我有一個登錄頁面,用戶使用用戶名和密碼登錄,用戶名在數據庫中找到,用於設置變量的值,通過get屬性可以訪問變量的值,如果成功,則用秒頁面(LoggedIn.aspx)通過這種方法叫:在頁面間傳遞值

Server.Transfer("LoggedIn.aspx", true); 

在頁面的loggedIn,我有這樣的朝頂:

<%@ PreviousPageType VirtualPath="~/AccountLogin.aspx" %> 

而對於用戶ID的值存儲在一個全局變量構造函數:

if (this.PreviousPage != null) 
     user = PreviousPage.userid; 

另一個get屬性提供對此變量的訪問。當用戶選擇一個按鈕時,該過程重複到第三頁。我似乎遇到的問題並不能完全解決,因爲當用戶選擇LoggedIn頁面上的按鈕時,該頁面似乎重新加載,因此userid值設置爲零,因此該值無用。

  1. 我應該使用會話狀態嗎(即它是否更安全)?
  2. 如果我的方法足夠安全,我該如何解決這個問題?

回答

2

As answered previously

您可以從一個頁面值傳遞給另一個通過如下..

Response.Redirect 
Cookies 
Application Variables 
HttpContext 

的Response.Redirect

SET:

Response.Redirect("Defaultaspx?Name=Pandian); 

GET:

string Name = Request.QueryString["Name"]; 

餅乾

SET:

HttpCookie cookName = new HttpCookie("Name"); 
cookName.Value = "Pandian"; 

GET:

string name = Request.Cookies["Name"].Value; 

應用程序變量

SET:

Application["Name"] = "pandian"; 

GET:

string Name = Application["Name"].ToString(); 

參考的全部內容在這裏:Pass values from one to another

+0

http://msdn.microsoft.com/en-us/library/6c3yckfw(v = vs.100).aspx –

+4

更好地使用'Session'而不是'Application' –

+1

Naveen,你是否從安全的角度推薦一種比別人更好的方法? – deadEddie