这是我的错误:
错误[28000] [Microsoft] [ODBC SQL 服务器驱动程序] [SQL Server]登录失败 对于用户'NT AUTHORITY \ ANONYMOUS LOGON”。错误[28000] [微软] [ODBC SQL Server驱动程序] [SQL Server]登录 用户'NT失败了 AUTHORITY \ ANONYMOUS LOGON'。
这是应用程序启动时的连接字符串:
MyConnection = New Odbc.OdbcConnection("DRIVER={SQL Server};SERVER=MySqlServer;Trusted_Connection=True;DATABASE=MyDatabase")
以下是Web.Config的一部分:
<authentication mode="Windows"/>
<identity impersonate="false"/>
以下是我的IIS(7)设置:
验证
连接字符串
答案 0 :(得分:0)
我相信在这种情况下你可能不得不使用ASP.Net Impersonation。
http://weblogs.asp.net/achang/archive/2004/04/15/113866.aspx
答案 1 :(得分:0)
如果您的Web应用程序在没有集成安全性的情况下运行删除“允许匿名连接”安全选项。当Web服务器以ANONYMOUS身份验证时,将使用对SQL Server DB没有足够权限的标识执行请求。
编辑:如果您在与客户端计算机不同的计算机上运行Web服务器,则可能需要调查服务器是否实际识别客户端计算机上使用的帐户。如果计算机不属于同一安全域,您甚至可能需要经历可疑的修改服务器的过程
本地政策 - &gt;安全选项 - &gt;网络访问:本地帐户的共享和安全模型设置为:Classic - local users authenticate as themselves
并在服务器上创建具有相同名称和密码的用户帐户。
您可能还想调查服务器上的http日志
答案 2 :(得分:0)
应使用哪个用户帐户连接数据库?您的用户帐户,SQL服务器上的帐户,IIS应用程序池帐户?
默认情况下,如果您不为连接字符串指定用户名和密码,.NET将使用AppPool的凭据,而Simen表示该凭据对SQL Server没有足够的权限。
如果你想使用访问网站的用户的凭据(可能是个坏主意),你需要像Thyamine所说的那样使用模拟,但是如果你想使用为数据库设置的SQL帐户,那么您需要将该用户的用户名和密码放入连接字符串中。 (http://www.sqlstrings.com/SQL-Server-connection-strings.htm)
答案 3 :(得分:0)
正如Zach所说,您需要更改访问数据库的用户的凭据。
因此,您需要按照建议打开模拟,或者应更改用于运行网站的应用程序池使用的用户ID和密码。这个MSDN article虽然有点陈旧,但仍然适用,应该可以帮助你做到这一点。