关于WCF的“调用方未由服务进行身份验证”的另一解决方法
2011-12-16 15:52
375 查看
今天在远程服务器上部署WCF服务,遇到了一个问题:“调用方未由服务进行身份验证”,一直不得其法,在网上搜了一遍,发现原来有很多朋友也遇到了这个问题。
几乎每位网友都贴着同一个解决方案,就是把安全模式改为None,但几乎每位网友都说解决不了。我按照网上所说的方法试了半天,也没调成功。
在最烦燥的时候,人总应该冷静下来,去思考问题,我决定自行研究,寻找另外一条解决途径。
观察着服务端和客户端的配置,服务端用的是<security mode="None">,客户端用的是<security mode="Message">,这种搭配是VS自动生成的,在本地调试时是成功的,换句话说,身份验证是可以从客户端传递到服务端的,要不然,MS就真得是拿起石头砸自己的脚了。既然如此,问题产生的原因就只有两个,一是客户端的验证信息没有成功传递到指定服务端,二是客户端的验证信息无法被服务端识别。
首先尝试着第一种原因,把所有涉及远程服务地址的信息全部换成显式地址,包括服务端配置文件中的DNS,可以明确传递目标是准备无误的,但结果还是失败了。
第二种原因,首先想到的就是客户端的本地凭证传递到服务端,但没有被正确识别。尝试着将WCF的权限扩展,将NETWORK SERVICE和IUSER添加进去,但仍没成功。
还有什么原因呢,突然间想到一个奇怪的想法,既然NETWORK SERVICE已经加进去了,按道理客户端的信息应该可以被服务端所获取,除非服务端根本没有不知道发送请求的客户端是谁。此时,想起SQL SERVER访问Windows Server 2003的低级版本时,总是需要先登录到服务端的共享文件夹。
感觉到了曙光,按照想法,我先登录到服务端的共享文件夹,然后再启动调试,结果成功了!
总结下,其实问题的产生未必很复杂,可能只是某一小环节没有处理,或忽略了。在此,分享出经验,也希望各位遇到相同问题的网友,能够顺利解决问题。
几乎每位网友都贴着同一个解决方案,就是把安全模式改为None,但几乎每位网友都说解决不了。我按照网上所说的方法试了半天,也没调成功。
在最烦燥的时候,人总应该冷静下来,去思考问题,我决定自行研究,寻找另外一条解决途径。
观察着服务端和客户端的配置,服务端用的是<security mode="None">,客户端用的是<security mode="Message">,这种搭配是VS自动生成的,在本地调试时是成功的,换句话说,身份验证是可以从客户端传递到服务端的,要不然,MS就真得是拿起石头砸自己的脚了。既然如此,问题产生的原因就只有两个,一是客户端的验证信息没有成功传递到指定服务端,二是客户端的验证信息无法被服务端识别。
首先尝试着第一种原因,把所有涉及远程服务地址的信息全部换成显式地址,包括服务端配置文件中的DNS,可以明确传递目标是准备无误的,但结果还是失败了。
第二种原因,首先想到的就是客户端的本地凭证传递到服务端,但没有被正确识别。尝试着将WCF的权限扩展,将NETWORK SERVICE和IUSER添加进去,但仍没成功。
还有什么原因呢,突然间想到一个奇怪的想法,既然NETWORK SERVICE已经加进去了,按道理客户端的信息应该可以被服务端所获取,除非服务端根本没有不知道发送请求的客户端是谁。此时,想起SQL SERVER访问Windows Server 2003的低级版本时,总是需要先登录到服务端的共享文件夹。
感觉到了曙光,按照想法,我先登录到服务端的共享文件夹,然后再启动调试,结果成功了!
总结下,其实问题的产生未必很复杂,可能只是某一小环节没有处理,或忽略了。在此,分享出经验,也希望各位遇到相同问题的网友,能够顺利解决问题。
相关文章推荐
- 关于初学WCF时,调用方未由服务进行身份验证的问题
- 解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌
- 解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌
- 解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌
- C# WCF简单实例 出错:调用方未由服务进行身份验证
- WCF:调用方未由服务器进行身份验证
- WCF:调用方未由服务器进行身份验证
- 解决: 关于配置局域网内通过一台WEB服务器连接到域服务器进行身份验证的IP设置
- WCF:跨电脑调用方未由服务器进行身份验证
- 调用方未由服务进行身份验证
- 调用方未由服务进行身份验证
- 关于基于NTLM明文身份验证进行的暴力破解解决办法
- IIS 下网站提示输入用户名密码进行身份验证解决方法
- WCF:调用方未由服务器进行身份验证
- 通过使用客户端证书调用 Web 服务以便在 ASP.NET Web 应用程序中进行身份验证
- 微信小程序出现【需要进行身份验证】弹框解决方法
- 通过使用客户端证书调用 Web 服务进行身份验证{转}
- WCF:调用方未由服务器进行身份验证
- dhl:The request for security token could not be satisfied because authentication failed. 调用方未由服务进行身份验证。
- WCF:调用方未由服务器进行身份验证