2013-03-09 170 views
0

在我開始之前,我想說我對ASP.NET和C#非常新穎,而且一般來說編程是真的。我創建了一個Web應用程序,其中有一個登錄頁面,用於查看包含用戶數據的自定義數據庫以及他們的登錄信息。我這樣做,而不是使用ASP.NET成員資格,因爲在我學院的網絡中使用這個併發症。會話 - 登錄查看用戶數據

由於表中包含許多用戶數據記錄,我想要做的是讓用戶登錄到應用程序中並(根據他們的登錄詳細信息)允許他們從我創建的表中查看JUST的詳細信息他們有很多用戶數據的記錄。

我正確的說,我應該根據用戶名和密碼創建一個會話,並以此方式將它與表中的記錄相匹配,並使用SQL來顯示其數據而不是整個表格。

如果是這樣,我真的不知道如何實現這一點。

我知道這將是非常不安全的,但用戶都是虛構的,這個應用程序不會被髮布到網絡上。我只是希望它以最簡單的形式工作,我將在報告中介紹安全方面,並說明如何改進。

任何意見將不勝感激,乾杯。

+0

我會開始閱讀有關[窗體身份驗證](http://support.microsoft.com/kb/301240)。 – 2013-03-09 16:01:53

回答

0

您應該在表格中使用唯一標識符進行排序。像ID或userNr或類似的東西,把它作爲一個整數並設置爲主鍵,然後通過雙擊它(我假設你正在使用Visual Studio)將其身份規範(身份)設置爲是。

當用戶在那裏提交登錄信息並將其簽出時,您將在該會話中保存唯一標識符。

當您需要提取特定於有問題的用戶的信息時,您使用sql WHERE ID(或userNr)等於會話ID。

希望這是你需要的,這是我在這裏的第一個答案,所以我想幫助。

1

無論何時你發現用戶的憑據登錄不夠有效,一些/他所有的證書添加到當前會話一樣,

Session.Add("sessionvariablename",textBoxLogin.Text); 

在其他網頁,自帶登錄後,請檢查以下,

if(Session["sessionvariablename"].ToString()=="xyz") 
{ 
Do whatever you want 
} 

出於安全考慮,您可能不希望爲會話添加敏感信息。使用 Guid.NewGuid()爲每個用戶創建一個唯一的32個字符的十六進制代碼並將其存儲在會話中。

+0

你真的建議在'Session'中輸入明文密碼嗎? – 2013-03-09 16:03:30

+0

你可以隨時加密它,或者完全跳過爲會話添加密碼,如果安全是你關心的問題,那不是根據問題。添加Uid,電子郵件,用戶名等其他內容 – 2013-03-09 16:05:53

+0

然後,您應該更新您的答案以包含一些上下文。恕我直言,在會話中推送安全數據不是最佳做法。您只是重新實現了已通過表單身份驗證解決的問題。 – 2013-03-09 16:08:07

0

如果我正確的做法是使用用戶名和密碼作爲會話參數,但它不是最好的主意。通常情況下,你的用戶表包含每種記錄的一種唯一標識符(guid或autoincrement id)。您可以將此標識符用作會話參數。