我有一个ASP.Net应用程序,它使用Windows身份验证使用SQL Server存储过程和Web服务。我们的想法是使用登录的用户凭据来调用Web服务(这一点至关重要,因为Web服务使用身份验证凭据来分配创建或更新的记录的所有者)以及执行存储过程。
当我使用VS.Net集成的Web服务器时,结果很好(可能是因为此服务器在当前登录的用户帐户下启动)SQL Server SP返回预期的结果(即使我从查询分析器执行它们) Web服务凭据已正确设置为当前登录用户。
但是,当我在本地IIS中托管应用程序时,它无法按预期工作。 Sql Server存储过程返回EMPTY数据集,Web服务凭据设置为空。
我正在使用
myService.Credentials = System.Net.CredentialsCache.DefaultCredentials
支持Web服务主机虚拟目录,我的应用程序虚拟目录在IIS的目录安全性中使用Windows身份验证。
任何人都有任何想法???
答案 0 :(得分:1)
您最喜欢的本地IIS运行托管您的asp.net的应用程序池作为用户网络服务 看起来你的asp.net应用程序没有正确使用windowsauthentification。你确定你正确登录了吗?创建一个新的空白页面并为Page_Onload方法设置断点。在那里你去(我认为它的提示窗口)并输入this.User.Identity.Name并查看它是否与你的Windows登录相匹配
答案 1 :(得分:0)
。点击网站 - >属性和opt目录安全性。然后是匿名访问和身份验证控制,然后选择Windows集成以允许Windows域用户。访问网站
答案 2 :(得分:0)
不幸的是我找不到原因。但是为了解决这个问题,我使用了模仿。
关于返回没有任何值的SP。我已经发现我使用了SP的视图和一些登录的Windows帐户对这些视图没有足够的权限。