2014-10-30 70 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

相关问题