我正在测试一个webservice。当我使用个人asp.net When服务器时,带有随机端口的服务器一切正常。当我将DefaultCredentials传递给ssrs服务器以运行报表时,它使用我的凭据。
当我试图将它移动到本地IIS服务器时,DefualtCredentials UserName是空的,传递给SSRS服务器的ID是ASPNET。
我关闭了Annon访问,并且只打开了集成Windows身份验证。
我的本地IIS是5.1,所以它没有将应用程序池作为单独的对象。
在web.config身份验证中设置
<authentication mode="Windows" /> 提前谢谢。
更新--我有
<identity impersonate="true" />现在,但我的问题比最初说的要棘手。
外部webservice调用,现在它在浏览器中工作正常。但是,当我从SSIS内部调用外部when服务时,它不起作用,当我逐步完成代码时,对外部webservice的调用就会发生,但是当我调用SSRS时,会得到一个401身份验证错误。
我在HTTP管理器中有有效的凭据。我的包保护级别在EncryptSensitiveWithUserKey。
同样,如果我从个人ASP.net even服务器调用外部even服务,那么即使是SSIS也可以正常工作。我每次只需要下载wsdl,因为端口改变了,然后我必须重新设置webservice任务。当我去生产的时候我很担心。
(我还没有从代码中运行测试来查看webservice是如何运行的)
更新2
同样,webservice在IE中工作,但在SSIS或Firefox中不起作用,即使在我点击webservice时提供凭据时也是如此。
我知道我得到了正确的认证
User.Identity.Name 在webservice中返回我的登录名,但是当我将defaultCredentials分配给reporting时,它仍然会给我401号错误。我甚至试图冒充我已登录的日志。
Dim win As System.Security.Principal.WindowsIdentity = CType(User.Identity, System.Security.Principal.WindowsIdentity)
Dim context As System.Security.Principal.WindowsImpersonationContext = win.Impersonate()
reportService.Credentials = System.Net.CredentialCache.DefaultCredentials发布于 2010-12-30 13:26:57
这是我从微软那里得到的答案。
我很高兴早些时候在电话里讨论你的问题。正如我刚才所说的,不支持Windows,请查看以下文章:http://msdn.microsoft.com/en-us/library/ms140114.aspx
Important
The HTTP connection manager supports only anonymous authentication and basic
authentication. It does not support Windows Authentication.因此,此时使用Script Task调用Web服务是一种选择,但是您提到将包迁移到QA到UAT等将面临挑战。我同意您的看法,即管理代理类中的URL是一项挑战。
如果你还有其他问题,请告诉我。
现在,就连这也不是真的,因为我向这位来自微软的男士展示了我们的web服务确实需要Windows身份验证,但不起作用的是所谓的“双跳”。也就是说,凭据不会传递给SSRS服务器。
https://stackoverflow.com/questions/4492667
复制相似问题