Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将web应用程序身份验证更改为使用Windows身份验证_C#_Sql Server 2008_Asp.net Web Api_Iis 8.5 - Fatal编程技术网

C# 将web应用程序身份验证更改为使用Windows身份验证

C# 将web应用程序身份验证更改为使用Windows身份验证,c#,sql-server-2008,asp.net-web-api,iis-8.5,C#,Sql Server 2008,Asp.net Web Api,Iis 8.5,我试图在IIS 8.5上发布我的web应用程序,但当应用程序尝试从SQL Server 2008检索数据时,我遇到了此错误 InnerException:{消息:发生错误,。异常消息:用户'domainname\WES-JXC2J02$'登录失败,…} 例外消息:“用户'domainname\WES-JXC2J02$'登录失败。” SQL Server没有将WES-JXC2J02$列为授权用户,因为它是我的开发人员机器名。如果我尝试将计算机名添加为SQL Server中的用户,则会出现错误,因为

我试图在IIS 8.5上发布我的web应用程序,但当应用程序尝试从SQL Server 2008检索数据时,我遇到了此错误

InnerException:{消息:发生错误,。异常消息:用户'domainname\WES-JXC2J02$'登录失败,…} 例外消息:“用户'domainname\WES-JXC2J02$'登录失败。”


SQL Server没有将WES-JXC2J02$列为授权用户,因为它是我的开发人员机器名。如果我尝试将计算机名添加为SQL Server中的用户,则会出现错误,因为域中没有这样的用户。我想使用设置为在IIS中启用的Windows身份验证。我能做些什么来修复它

显然,正如@MikeCheel所说,它正在将我的机器凭据转发给SQL Server,以便从数据库中检索数据。事实证明,我需要在SQL Server中创建一个具有有限访问权限的新登录名,然后在connectionString中添加用户id和密码。我了解到SQL Server必须启用SQL和Windows身份验证的艰难过程。一旦配置好,就可以建立连接并正确显示数据

那么它成功发布了?@MikeCheel它成功发布了,我甚至可以看到索引页。它是一个主干应用程序,所以当我转到它应该显示一个包含数据的表的链接时,我得到了这个错误。除此之外,它显示的一切都很好。我只是不明白为什么它试图以domain\machinename的身份登录。有什么想法吗?我最近做了一些类似的事情(或者至少让我想起了你正在做的事情)。我试图从我的浏览器调用我的web api,而web api正在调用我们的tfs服务器。问题是,我的选择是,我需要在我的web api服务器上启用委派(通过AD),或者我必须滚动我自己的代理才能获得tfs的凭据。如果我不这样做,它就将我的机器凭据转发到服务器(就像您描述的那样)。最后,我将我的web api移动到tfs服务器来修复它(我的第三个选项)。此外,我认为当您使用网络服务作为应用程序池帐户时,它希望使用机器名进行身份验证。我并不是百分之百支持这一点。