小编Bre*_*ren的帖子

使用HTTPS的WCF WS2007FederationHttpBinding

尝试连接到HTTPS代理后面的WCF API时遇到以下错误:

名称为"CN = hostname"的服务器证书未通过身份验证,因为其指纹("X")与端点标识("Y")中指定的不匹配.因此,当前的HTTPS请求失败.请更新客户端上使用的端点标识或服务器使用的证书.

其中X是代理使用的证书的指纹,Y是服务使用的证书的指纹

问题是我设法从STS获得一个令牌,但之后我无法执行任何Web服务调用.

我通过使用本地SSL代理在我的PC上重现了该问题,代理上使用的证书在我的PC上是可信任的.使用HTTP时一切正常.

我现在搜索了一个解决方案好几天了,我注意到这篇KB文章接近我的问题但不再适用了(我正在运行示例和.Net 4.5中的服务器):https://support.microsoft.com/ EN-US/KB/2564823

我错过了什么?

这是代码:

class Program
{
    static void Main(string[] args)
    {
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-us");

        string serverUrl = ConfigurationManager.AppSettings["ServerURL"];
        GenericXmlSecurityToken token = GetToken(serverUrl);

        Console.WriteLine("Token Received");
        Console.WriteLine(token);

        TestServiceClient client = CreateClient(serverUrl, token);

        try
        {
            client.SearchSomething();

            Console.WriteLine("SearchSomething succeeded");
        }
        catch (Exception e)
        {
            Console.WriteLine("SearchSomething failed :" + e);
        }

        Console.ReadLine();

    }

    private static TestServiceClient CreateClient(string serverUrl, GenericXmlSecurityToken token)
    {
        var binding = new WS2007FederationHttpBinding(WSFederationHttpSecurityMode.Message)
        {
            MaxReceivedMessageSize = int.MaxValue,
            MaxBufferPoolSize …
Run Code Online (Sandbox Code Playgroud)

.net ssl wcf proxy wsfederationhttpbinding

7
推荐指数
1
解决办法
692
查看次数

标签 统计

.net ×1

proxy ×1

ssl ×1

wcf ×1

wsfederationhttpbinding ×1