如何使用Windows身份验证配置SQL Server以使用ASP.NET MVC?

时间:2013-02-17 16:18:54

标签: asp.net sql-server asp.net-mvc windows-server-2008 connection-string

这是我的连接字符串:

<add name="MyDb" providerName="System.Data.SqlClient" connectionString="Server=localhost;Data Source=.\MSSQLSERVER;Initial Catalog=MyDb;Integrated security=SSPI;" />

它在我的localhost机器上工作正常,但在我的服务器上,部署我的应用程序后,它不想工作,它给了我这个错误:

  

[SqlException(0x80131904):与网络相关或特定于实例的   建立与SQL Server的连接时发生错误。该   服务器未找到或无法访问。验证该实例   名称是正确的,并且SQL Server配置为允许远程   连接。 (提供者:SQL网络接口,错误:25 - 连接   字符串无效)]

当我更改连接字符串以使用帐户凭据时 - sa,它连接得很好,所以我确切地知道这是错误的sql server配置问题。

所以我的问题是:我刚刚安装了sql server实例,如何配置它以便它允许我的asp.net mvc应用程序进行Windows身份验证?

编辑:好吧,毕竟,我再次查看了我的连接字符串,并删除了Data Source =。\ MSSQLSERVER。它有所帮助,现在一切正常,谢谢你们的帮助。

3 个答案:

答案 0 :(得分:4)

如果您的应用程序在IIS的DefaultAppPool下运行,它将使用“IIS APPPOOL \ DefaultAppPool”帐户以集成模式访问db。所以要在SqlServer中授予帐户:

  1. 打开sqlserver实例
  2. 展开安全性,选择“新登录”
  3. 为登录名设置“IIS APPPOOL \ DefaultAppPool”,从“用户映射”选项卡为该帐户授予db访问权限。
  4. 点击确定以创建。
  5. 希望这会有所帮助。

答案 1 :(得分:0)

查看following article on MSDN,其中说明了如何更改SQL Server的身份验证模式。

您可以使用SQL Server管理工作室:

  
      
  1. 在SQL Server Management Studio对象资源管理器中,右键单击服务器,然后单击“属性”。
  2.   
  3. 在“安全性”页面的“服务器身份验证”下,选择新的服务器身份验证模式,然后单击“确定”。
  4.   
  5. 在“SQL Server Management Studio”对话框中,单击“确定”以确认重新启动SQL Server的要求。
  6.   
  7. 在对象资源管理器中,右键单击您的服务器,然后单击“重新启动”。如果SQL Server代理正在运行,则还必须重新启动它。
  8.   

答案 2 :(得分:0)

首先弄清楚您的网页在哪个Windows帐户下运行。例如,您可以打印以下值:

User.Identity.Name

如果它是像“网络服务”这样的本地帐户,则必须更改帐户。如果您在IIS中运行,则该帐户是应用程序池的属性。

了解帐户后,您可以在SQL Server中授予该帐户登录权限。