2010-11-10 43 views
0

我有一個桌面應用程序,在第一次執行時提示連接詳細信息到數據庫,然後我想保留它們以備將來使用(作爲加密字符串),以便下次用戶啓動應用程序時, -用過的。現在,客戶端運行一個我以前沒有真正接觸過的citrix環境,並且我想確保這個加密的數據庫字符串以這樣的方式保存,以便用戶在任何地方登錄時都可以使用它 - 我認爲我所說的是,應用程序需要在他們的漫遊配置文件中知道這個設置,但這是我以前不必擔心的事情,所以我只是檢查是否有任何我需要的陷阱意識到。將設置存儲在可能部署在Citrix環境中的.Net Winforms應用程序中的最佳做法是什麼?

正常情況下,我只是在.Net中使用My.Settings命名空間,但是會在這種環境中切斷它嗎?

我很感謝任何知道保存用戶設置的「最佳做法」,以便漫遊用戶在從新位置登錄時不會再被要求再次輸入其設置。

以這種方式設置數據庫連接的原因是有一個用戶可以在(相同數據庫,不同服務器)之間切換的測試和實時數據庫。

將活動和測試連接字符串存儲在app.config中並允許管理員在安裝後手動更新它們,然後提供切換以從測試轉到UI中?

我通常在asp.net網站上工作,所有的東西都在web.config中愉快地生活,所以這是我舒適區之外的一個步驟。我可以在書中看到很多選項,但是我想知道是否有人對哪種技術最適合他們有任何建議?

我使用VB.Net 3.5(Visual Studio 2010)。這是一個windows窗體項目,在解決方案中有一些.dll庫,實際的數據庫訪問發生在這個項目中。

回答

1

如您所寫,您需要確保您保存的設置最終位於配置文件的漫遊部分。這可以是註冊表配置單元HKEY_CURRENT_USER或解析爲%USERPROFILE%\ AppData \ Roaming(在Vista和更高版本上,也適用於舊操作系統上特定於語言環境的漫遊AppData文件夾)的文件夾%APPDATA%。

在.NET中,用戶特定的設置可以存儲在用戶配置文件的漫遊和本地部分。爲了使設置漫遊,「漫遊」屬性需要設置爲true。看到這篇文章的解釋,也爲路徑的設置實際上會保存:

http://www.codeproject.com/KB/vb/appsettings2005.aspx

+0

我要調查這個Helge,我沒有發現「漫遊」屬性 - 可能是我正在尋找的rosetta石頭:) – Mordy 2010-11-11 11:52:31

+0

漫遊設置似乎在我的機器和用戶的工作。config被寫入漫遊文件夾而不是Localdata文件夾,但是我無法在不同項目中的數據訪問層中獲取My.Settings值,因此顯然無法使用My.Settings包裝器。我設法得到的值出使用此的變體: – Mordy 2010-11-11 14:48:05

+0

(進口system.configuration) 昏暗配置作爲System.Configuration.Configuration 配置= System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming) 昏暗部分As System.Configuration.ClientSettingsSection = CType(config.GetSection(「userSettings/AppName.My.MySettings」),ClientSettingsSection) Dim Value as string = section.Settings.Get(「ActiveDSN」)。Value.ValueXml.InnerText – Mordy 2010-11-11 14:48:32

0

如果您知道連接字符串事先可以將它們存儲在App.config,並要求用戶在開始時例如,應用程序通過ComboBox選擇連接。

如果你不提前知道的連接串,我能想到的下列選項:
1-使用,你知道它的連接字符串或本地數據庫,SqlServerCE .sdf文件的數據庫,用於存儲這些信息。
2-在.Net中使用用戶設置,通過C#中的Properties.Settings.Default.NameofSetting訪問。

+0

這將是我的首選誠實方式,但桌面應用會出現給很多客戶,我擔心他們之間不小心泄漏了連接細節,所以我寧願他們現場配置它們以滿足他們自己的要求。另外,我不想以純文本的形式存儲配置數據,我認爲如果客戶必須首先對數據進行加密,那麼使用這種方式就太麻煩了。 – Mordy 2010-11-11 11:52:04

相關問題