2011-08-22 23 views
0

我們有一個使用網絡數據庫的C#.Net應用程序。我的意思是說,應用程序的許多實例將從不同的機器訪問相同的數據庫。因此,如果我必須存儲用戶ID以在重新登錄時顯示用戶,我可以在哪裏存儲它?在使用網絡數據庫的同時存儲用戶標識的位置

我擁有的選項是:
- 將其存儲在應用程序目錄中的本地文件中。 (但問題是應用程序是使用Click Once安裝的,當應用程序更新時,應用程序目錄正在更改。可能是我在這裏丟失了一些東西。)
- 存儲在註冊表中。
還有其他嗎?

有人可以建議該怎麼辦?糾正我,如果我錯了。

+0

你是什麼意思?爲什麼不在Sql Mode中使用會話,如果這只是一個Web服務器場? – Tejs

+0

@Tejs如果用戶已經登錄一次,我想在登錄表單中的用戶標識文本字段中自動填充userId。我想在問db之前知道userId。 – Prakash

+0

@Prakash,注意不要存儲任何明文密碼。 –

回答

1

通常您希望存儲任何需要在會話間持續存在的數據,並且在註冊表或用戶AppData文件夾中是用戶特定的。通常對於小事情(即ID,基本設置等),註冊表是最好的地方。只要確保將其保存在HKCU \ Software \ Your company name \您的程序名稱下。雖然如果數據是敏感的,你應該小心地放置它,它應該被加密以保護它免受基本的窺探。如果數據不敏感,那麼註冊表是一個很好的放置位置。

這當然假定安裝和配置不需要是xcopy便攜式的(即,用戶可以將安裝文件夾複製到新的地方/計算機並且一切正常)。如果是這種情況,那麼您將需要將其存儲在安裝目錄下。

1

如果您需要將用戶標識存儲在本地,請將其保存在某種配置文件中,在「LastLogin」條目下。查看this question,特別是this answer瞭解更多信息。

+0

因此,您要求我在AppData目錄(常量路徑)中創建另一個用於存儲'LastLogin'的文件,因爲當應用程序更新時,應用程序文件夾正在被修改。 – Prakash

+0

是的,這幾乎是我sugest – Michael

3

有對這種東西看Environment BUIL-INT位置 - 具體爲:

  • ApplicationData(特定用戶漫遊)
  • LocalApplicationData(用戶特定的非漫遊)
  • CommonApplicationData(不是用戶特定的)
+0

謝謝。在應用程序更新時應用程序文件夾被修改的情況如何(如問題中提到的那樣)。我也想問問爲什麼應用程序文件夾正在被修改。 – Prakash

+0

這些位置在應用程序文件夾之外 - 因此應用程序文件夾內容的更新(如新的EXE/DLL等)不會改變您在這些位置放置的任何東西... – Yahia

+0

我們通過點擊安裝的應用程序一旦安裝在位置「c:\ Users \ Prakash \ AppData \ Local \ Apps \ 2」。0 \ <隨機值> \ <隨機值> \ <應用程序安裝文件夾>「這個應用程序安裝的文件夾正在修改,這個路徑是否在LocalApplicationPath下面嗎? – Prakash

相關問題