如何配置SQL Server以使用ASP.NET MVC和windows身份验证?
这是我的连接字符串:如何配置SQL Server以使用ASP.NET MVC和windows身份验证?,asp.net,sql-server,asp.net-mvc,windows-server-2008,connection-string,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;" /> 它在我的本地主机上运行正常,但在我的服务器上,在部署我的应用程序后,它不想工作,它给了我以下错误: [SqlException(
<add name="MyDb" providerName="System.Data.SqlClient" connectionString="Server=localhost;Data Source=.\MSSQLSERVER;Initial Catalog=MyDb;Integrated security=SSPI;" />
它在我的本地主机上运行正常,但在我的服务器上,在部署我的应用程序后,它不想工作,它给了我以下错误:
[SqlException(0x80131904):与网络相关或特定于实例的
建立与SQL Server的连接时出错
找不到服务器或无法访问服务器。请验证实例
名称正确,并且SQL Server配置为允许远程访问
连接。(提供程序:SQL网络接口,错误:25-连接)
字符串无效)]
当我将连接字符串更改为使用account credentials-sa时,它连接得很好,所以我确切地知道这是sql server配置错误的问题
因此,我的问题是:我刚安装了sql server实例,如何配置它以允许asp.net mvc应用程序的windows身份验证
编辑:毕竟,我再次查看了我的连接字符串,并删除了数据源=。\MSSQLSERVER。这很有帮助,现在一切正常,谢谢大家的帮助。看一看,它演示了如何更改SQL Server的身份验证模式
您可以使用SQL Server management studio:
首先找出您的网页运行的Windows帐户。例如,您可以打印以下值:
User.Identity.Name
如果是像“网络服务”这样的仅本地帐户,您必须更改该帐户。如果您在IIS中运行,则该帐户是应用程序池的一个属性
了解该帐户后,可以在SQL Server中授予该帐户登录权限 如果应用程序在IIS的DefaultAppPool下运行,它将使用“IIS APPPOOL\DefaultAppPool”帐户以集成模式访问数据库。因此,要在SqlServer中授予帐户:
希望这有帮助。是的,我在那里启用了windows auth。我想我的问题是,因为我没有添加任何登录?我是否需要添加到我的登录网络服务或类似的服务?是的,您需要添加一个与您需要访问的数据库关联的帐户。然后,您应该让web应用程序的应用程序池在同一帐户下执行。与服务器相关的问题更适合您,因此,如果您需要更多详细信息,请毫不犹豫地将您的问题发布到那里。StackOverflow是一个与编程相关的问题,此处没有服务器配置问题。已为NetworkService设置应用程序池。我向名为网络服务的sql server添加了登录名(它被列为NT AUTHORITY\network service),并授予它管理员权限。仍然没有结果。每个服务器都有自己的“网络服务”。因此,只有当SQL Server与Web服务器位于同一台服务器上时,这种方法才有效。尝试配置其他(或新)帐户。是的,我的Web服务器和sql server在同一台计算机上。呵呵,我将我的应用程序池更改为以我的管理员帐户运行,但它不起作用,正在发生什么事…“网络服务”是一个特殊帐户,可能有一些特殊的东西不起作用。我从未见过它被用来访问SQL Server。嗯,谢谢。不管怎样,我按照你说的做了,有一个名为
iisapppool\DefaultAppPool
的用户。我还将应用程序更改为从defaultapppool运行(顺便说一句,defaultapppool列为本地服务)。但我还是犯了同样的错误。我现在能做什么/