- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从 Web 客户端调用的 ASMX Web 服务(在我的本地主机上 - WinXP IIS 5.1)。我的 web 服务必须使用另一个 ASMX web 服务(在 Win 2003 服务器 IIS 6.0 上)。
当我以“硬编码”方式在我的网络服务代码中提供凭据时:
engineWSE.Credentials = new System.Net.NetworkCredential("myUser", "myPass", "myDomain");
engineWSE.Credentials = System.Net.CredentialCache.DefaultCredentials;
最佳答案
正如@Michael Levy 所说,这是一个双跳问题。这意味着除非您配置 Kerberos (Negotiate),否则 NTLM 可能在运行 IIS 的 Windows 环境中使用,在机器 A 上有一个带有浏览器的客户端试图访问机器 B 上的网站时,将可以访问该站点但是,当这个站点将尝试联系机器 C 上的服务,应使用池凭据。
网站 A 调用服务 B 反过来调用服务 C 也是如此。
在为网站配置 Kerberos 时,应考虑多种因素。首先是要知道它是否是农场。如果是,您必须为场中所有机器部分的池定义一个通用用户。这是必需的,因为 Kerberos 使用域名来标识用于加密安全 token 的主体。如果您在同一个场的不同机器上有不同的用户,因为他们都将通过相同的域名访问,所有请求都将搜索相同的条目。更多详细信息可在 Kerberos and load balancing 上找到。 .
例如,假设您有一个以 myApp.intranet 作为 URL 的站点。在 AD 中,您将有一个 SPN 设置为,例如,域 MyDomain 中的 myUser (setspn -S MyDomain\myUser HTTP/myapp.intranet)。当请求发送到 KDN 时(有关 KDN 的更多信息,请参阅末尾的 kerberos 链接),它将始终返回使用 myUser 加密的 token ,但 IIS 将尝试使用不同的用户对其进行解密。为同一个服务(HTTP/myapp.intranet)创建多个 SPN 可能很诱人,但这会导致 KRB 错误。
此外,如果您使用的是 IIS 7+,如果您想保持启用内核模式身份验证(强烈推荐),则必须在 ApplicationHost.config 中设置一些细节:useAppPoolCredentials =真。此值必须在 configuration\system.webServer\security\authentication\windowsAuthentication 上设置。这是因为默认情况下,Kernel-mode auth will use the Computer account ,而不是池帐户,这将使我们回到多用户场景。
在所有情况下,Trust this user for ... of the Delegation tab必须启用 AD 主体的授权才能使委派工作。然后,您必须决定是要使用一般委派还是受约束委派。
正如我之前所说,您还必须为正确的用户和正确的服务设置 SPN。用户很容易识别,因为它将是您在池中定义的用户,但根据您的配置,服务可能会有点棘手。 DNS、浏览器和可能的其他变量可能会改变应该使用的内容。我们的试验和错误表明:
关于asmx - 模拟和 CredentialCache.DefaultCredentials 给 HTTP 401 Unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/727421/
我必须将凭据缓存中的用户名和密码分配给 Httpwebrequest。当我分配给缓存时,它正在工作,但是当从缓存分配给 Webrequest 时,它显示为空。我哪里错了? string strServ
存在什么 : 一个 Web 应用程序,允许用户创建约会、输入所需的与会者并发送约会请求。 我想要发生的事情: 我的网络应用程序通过 EWS 向多个收件人发送约会请求(代表正在使用网络应用程序的用户)
CredentialCache.Add 方法中的 authType 是什么? http://msdn.microsoft.com/en-us/library/czdw7s9e.aspx我不明白根据我传
有谁知道为什么 CredentialCache.DefaultCredential 会返回一个包含域、用户名和密码空字符串的 ICredential 实例?我在 IIS 7.5 上运行 WCF 服务。
我目前正在尝试在我的 wcf 项目中使用 TransportWithMessageCredentials 和 https。我设置了客户端和服务器安全模式="TransportWithMessageCr
我有一个托管在 IIS 中的 ASP.NET MVC Intranet 应用程序,它添加了 WCF 服务引用,WCF 驻留在另一台计算机上,并且还需要 Windows 身份验证。在我的网站中,这段代码
我正在尝试使用 MOSS 2007 webpart 中的 system.net.credentialcache.defaultcredentials。但凭据显示始终为空。我使用集成的 Windows
我有一个从 Web 客户端调用的 ASMX Web 服务(在我的本地主机上 - WinXP IIS 5.1)。我的 web 服务必须使用另一个 ASMX web 服务(在 Win 2003 服务器 I
我能够解决客户端无法通过执行以下操作的代理进行身份验证的问题: var proxy = WebRequest.GetSystemWebProxy(); proxy.Credential
我需要从作为 ServiceAccountA 运行的 WebServiceA 向 WebServiceB 发出 Web 请求,并让它使用 NTLM 进行身份验证。这两个 Web 服务都是托管在 IIS
我是一名优秀的程序员,十分优秀!