Web.config身份验证错误

Web.config身份验证错误

问题描述:

我正在使用SQLServer2005和VS2008。我在web.config中的连接字符串是:Web.config身份验证错误

add name="library" connectionString="Data source=KMT; Initial Catalog=Library;Integrated Security=SSPI" 

这里,KMT是我的服务器名称,Library是我的数据库。

当我通过VS2008 localhost运行我的页面时,没关系。但是,通过IIS查看时,会显示一条错误消息,如“用户登录失败”,KMT/ASP.NET'“。我的sqlserver身份验证模式是windows,在web.config中可以。什么是解决方案?

我的一个朋友帮我解决这个问题,因为我 执行的SQL添加ASPNET作为登录到 我的数据库和设置权限DA

EXEC sp_grantlogin N'MACHINE \ ASPNET” 的exec sp_defaultdbñ 'MACHINE \ ASPNET',N'Database ' 使用数据库 EXEC sp_grantdbaccess N'MACHINE \ ASPNET',N'ASPNET ' EXEC sp_addrolemember N'db_owner',N'ASPNET”

这里Machine是计算机名和数据库是我的数据库名称。 但通过这个ASPNET用户总共控制该数据库的 。

使用“集成安全性”意味着使用运行该进程的用户的身份登录到数据库。当您运行本地VS Web服务器时,它将作为您的登录名运行。但在IIS中,Web服务器工作进程作为预定义的用户帐户运行。 您的工作进程标识必须具有您的SQL Server和数据库的权限。

检查您的应用程序池在IIS中的属性。例如,如果您以网络服务身份运行,请进入SQL并创建一个新用户,输入网络服务作为Windows用户名,并将该用户权限授予您的数据库。

VS2008使用您的凭据授权到数据库,IIS使用不同的帐户。 确保IIS帐户有足够的权限。

如果使用集成安全性= SSPI,则当前用户(在VS中就是YOU)的凭证将用于连接到SQL Server。

从IIS应用程序,与IIS服务相关联的用户用于日志

解决方案:

  • 指定的IIS服务,它是允许的连接到SQL

  • 一个特殊的用户
  • 使用SQL Server认证来访问数据库,并在连接字符串中存储用户名/密码

您打算使用ASP.NET系统帐户还是用户Windows帐户?

如果后者需要impersonation。如果SQL和IIS位于同一台计算机上,那么这种方法很有效,否则它是一个双跃点,并且需要一些不重要的工作来设置委派。

如果服务器是Windows 2003,则可以授予网络服务访问SQL Server的权限