2014-10-30 52 views
1

我有一個.NET桌面應用程序將部署到客戶端的機器,我正在考慮如何許可它。我的首選策略是在應用程序中編寫一些代碼,將查詢發送到遠程服務器上的文件或數據庫,以查看用戶(通過電子郵件和密碼標識)是否具有當前許可證。響應只需要一個字節,因爲「是的,你有最新的許可證」或「不,你不知道」等。C#設置桌面應用程序來查詢遠程服務器的策略

這樣做的最好方法是什麼?

我的第一個也是最糟糕的想法是在遠程服務器上建立一個XML文件,並通過ftp查詢。但是,這可能會使網站和文件遭到黑客入侵。

更好的策略似乎是在服務器上設置SQL數據庫,並編寫應用程序以只讀方式查詢它。

你能指點我正確的方向嗎?

道歉爲這個問題的非特定性。當我找到它的時候,我會更清楚地知道我在找什麼。

+0

老實說,我發現設置一個SQL數據庫,並使用MySQL來獲取信息將是最好的選擇。 – CoderMusgrove 2014-10-30 02:46:48

+0

問題是,如果你有一個連接字符串或存儲在應用程序中......這將如何防止只爲所有註冊用戶查詢數據庫?你可能有一層額外的加密,但你不想顯示錶格。 – Tyress 2014-10-30 03:02:58

+0

同意 - 真誠的客戶黑客代碼的機會是遙遠的,但這不是編寫容易受到攻擊的代碼的藉口。無論如何,我將部署到企業環境中,而我不希望引起IT部門的憤怒。 – Extermiknit 2014-10-30 05:36:51

回答

0

我不知道別人會怎麼做,但我會做的是使用WCF Service在服務器上僅暴露身份驗證[OperationContract]客戶端(您的應用程序),或使用custom UsernamePasswordValidator。然後,我會在服務器端驗證時進行實際的數據庫查詢,因此唯一暴露給用戶的是[OperationContract]

+0

謝謝Tyress - 我正在閱讀有關WCF,它似乎是我正在尋找。 MSDN網站甚至有一個Visual Studio的演練 - 所以它會說我的語言。我將通過這個工作並找出一些單元測試。 – Extermiknit 2014-10-30 05:35:09

+0

沒有問題!我很高興這是你正在尋找的。 – Tyress 2014-10-30 05:36:12

相關問題