asp.net – 为什么IIS中的Windows /集成身份验证不会将用户凭据
问题:
在ASP.NET 4.0中,我使用SSRS 2005服务器的ReportService2005.asmx Web服务来获取报告列表.同样在.NET中,我使用Entity Framework与我的MS-SQL 2005数据库进行通信.当我使用Visual Studio Development Server作为我的Web服务器时,对SSRS和SQL的调用工作正常.但是当我切换到IIS 5.1时,SSRS和实体代码都会产生错误.我在IIS中仅使用Windows /集成身份验证. 错误: 对于Entity Framework,我的用户”登录失败.用户未与受信任的SQL Server连接关联. 尝试的解决方案: 题: 解决方法
Windows或集成身份验证意味着使用Windows凭据(或令牌)标识用户,但这并不意味着该请求在该用户下运行. ASP.NET运行时将在工作进程(App Pool)标识下执行请求,除非您将其配置为模拟其他一些标识.
因此,当您使用开发服务器访问该站点时,服务器以您的身份运行,因此可以根据您的身份访问SSRS和Sql Server,并且它可以正常运行. 在IIS下加载站点时,ASP.NET请求将在为应用程序池配置的任何标识下运行.通常,此标识是本地用户,因此将拒绝访问SSRS或Sql Server等网络资源.添加< identity impersonate =“true”username =“your name”../u0026gt ;,ASP.NET将以您的身份运行请求,这应该适用于SSRS和Sql Server. 这里奇怪的情况是< identity impersonate =“true”/> – 在此设置下,ASP.NET将模拟当前经过身份验证的Windows身份.但是,为了使其正常工作,您在集成身份验证上配置了IIS和ASP.NET,并拒绝匿名访问(在ASP.NET和IIS中).如果不这样做可能会导致无法验证当前用户的身份,并且请求将以匿名用户的身份(在IIS中配置)运行.如果您在IIS中标记了集成身份验证,但在ASP.NET中没有标记,则身份将不会传递给ASP.NET请求.您需要检查您的环境以查看您遇到的确切方案,但最终结果是您的ASP.NET请求在可以访问SQL Server而不是SSRS的凭据下运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 服务器端/客户端或两者用户输入验证
- asp.net – 如何将数据绑定表达式的值存储到变量中
- ASP.NET MVC对不存在的用户进行身份验证和授权
- asp.net中ScriptManager和ScriptManagerProxy之间的区别
- asp.net-mvc – 在运行时ASP.NET捆绑和缩小有什么好处?
- asp.net-mvc-3 – 后退按钮或导航到特定视图(页面)-ASP.NET
- asp.net jQuery Ajax用户登录功能的实现
- ASP.Net – AJAX UpdatePanel中的Javascript
- Asp.net MVC Razor – 自定义javascript里面的if块
- asp.net – 错误:类型存在于两个目录中