【问题标题】:How to create a connectionString into a online database如何在在线数据库中创建连接字符串
【发布时间】:2014-01-23 21:27:08
【问题描述】:
我正在尝试制作一个登录应用。
我想知道 app.config 上的 connectionString 是如何为在线连接建立的,以及我是否需要其他任何东西来访问数据库,因为我正试图直接访问该数据库上的用户表并且执行登录检查(因为我已经使用本地数据库进行了检查)
最好的问候
【问题讨论】:
标签:
c#
wpf
connection-string
【解决方案1】:
您的在线数据库,是指远程位置的数据库吗?
我建议不要直接访问远程数据库,除非该数据库服务器在没有外部公共访问的 LAN 环境中受到保护。如果 LAN 内的用户也可以不受管制地访问远程服务器,也将考虑公共访问。在任何基于密集点击的应用程序中,典型的架构是通过一个代理源或一组WebServices 来授权和验证用户。直接访问会使您的 SQL 服务器容易受到远程攻击。
也就是说,到 SQL 服务器(远程)的连接字符串可能是:
标准用户\通行证
Server=myRemoteServer;Database=myDataBase;User Id=myUsername;
Password=myPassword;
现在远程数据库和您的客户端 APP 之间可能存在保护远程登录的防火墙(应该有),并且 SQL 服务器禁用远程登录的可能性很大。阅读这里了解更多http://blogs.msdn.com/b/walzenbach/archive/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx
我必须再次指出,这是一个非常糟糕的主意,我将亲自创建一组WCF WebServices 以在带有数据库的服务器上运行。 WCF 服务将负责连接到数据库以验证凭据并返回结构化数据模型。
WPF 应用程序旨在与 WCF 服务的 Async 方法很好地配合使用,并且设置起来非常简单。使用此模型,您还可以使用散列令牌集设置更高级的身份验证,实施 SSL 以阻止 sniffing 出纯文本,并保护您的数据库免受外部访问。
网络上有很多示例可以从 WPF 应用程序连接到 WCF 服务。