Entity Framework SQL 集成安全性的连接问题

Entity Framework SQL Connection issues with Integrated Security

一方面,我有一个 Windows 服务,它使用 Entity Framework 连接到 SQL 服务器实例并使用那里的数据库。

另一方面,我有一个基于 WIX 的安装程序,它有一个基于引导程序 .NET 的 GUI,用户可以在其中输入连接详细信息以供服务在连接字符串中使用。在此安装程序 GUI 中,我还对用户提供的数据执行检查并检查数据库连接(使用 SqlConnection.Open() 甚至 creating/dropping 数据库)。

问题出现在工作组环境中,没有域控制器,并且当用户选择集成安全作为一个选项时。引导程序应用程序成功连接到 SQL 服务器并对其执行一些操作,但随后 Windows 服务无法使用 Integrated Security 连接到 SQL 服务器。如果我通过将其更改为用户和密码身份验证来跟进,该服务将正常运行。

如果服务失败,有没有办法让引导程序连接失败,或者相反?

谢谢。

最可能的原因是服务 运行ning 下的用户和安装程序 运行ning 下的用户不同。

如果用户 运行 安装程序可以通过 windows 身份验证访问 SQL 服务器,连接将会成功。然后,如果服务 运行s 在不同的帐户(比如 LocalSystem)下,服务 运行ning 下的用户没有使用集成安全性的权限。

解决此问题的方法是使用在服务器上具有权限的服务帐户或使用 SQL 身份验证。

我最近在部署服务时运行进入了这个。引导程序连接失败的唯一方法是 运行 它作为服务将 运行 下的帐户(模拟是实现此目的的一种方法),否则您无法正确测试连接。

由于您提到了工作组并且没有域控制器,因此可能会通过用户名和密码进行一些传递。在我工作的一个地方,在 SQL 框之一(域外)上,每个开发人员都有一个本地 windows 帐户,其密码与他们的域帐户相同。这允许通过身份验证(由于用户名和密码匹配)并访问 SQL 服务器。这可能就是正在发生的事情。