通过Internet连接sql server和windows身份验证

时间:2015-08-11 13:41:24

标签: c# sql-server windows authentication

我有c#windows表单应用程序,它将通过Internet连接连接到ms sql server。

我需要使用实体框架连接到它,以使日常好,但是,连接存在问题。我需要连接Windows身份验证

我有类似的连接字符串

  

Data Source = xxx.xxx.xxx.xxx [SQL INSTANCE];初始   Catalog = mainCatalog;用户ID = [用户ID];密码= [密码];

如您所知,这是SQL身份验证。 我该怎么做才能连接到带有连接字符串的sql server,我也可以用windows身份验证参数来登录。

感谢。

1 个答案:

答案 0 :(得分:0)

正如其他人已经评论过的那样,您无法使用互联网上的Windows身份验证。在Internet上,您的客户端无法与您的域控制器通信,这是获取Windows身份验证中使用的加密密钥所必需的。

即使你可以,我也建议不要直接在互联网上公开你的SQL服务器。

更好的选择是让您的Windows窗体应用程序与Web服务通信,并让Web服务与SQL服务器实例通信。这样,您可以将SQL服务器放在防火墙后面,只允许您的Web服务进行查询。您的Web服务可以使用Windows身份验证与SQL Server通信(如果它们安装在同一域中)。

您的Windows窗体应用程序可以使用基于令牌的身份验证协议(如OAuth2)对您的网络服务进行身份验证。