簡體   English   中英

客戶端身份驗證方案“匿名”禁止HTTP請求。 3

[英]The HTTP request was forbidden with client authentication scheme 'Anonymous'. 3

我正在使用wcf通過https實現相互握手,並且收到錯誤消息:“ HTTP請求被客戶端身份驗證方案'Anonymous'禁止。”

服務代碼:

        var binding = new BasicHttpBinding()
        {
            Security =
            {
                Mode = BasicHttpSecurityMode.Transport,
                Transport = { ClientCredentialType = HttpClientCredentialType.Certificate },
            },
        };

        var sh = new ServiceHost(typeof(EchoService), new Uri("https://localhost:9876"));
        //sh.Description.Behaviors.Add(new ServiceMetadataBehavior());
        //sh.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName, MetadataExchangeBindings.CreateMexHttpsBinding(), "mex");
        sh.AddServiceEndpoint(typeof(IEchoService), binding, "");
        sh.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
        sh.Open();

客戶代碼:

        var binding = new BasicHttpBinding()
        {
            Security =
            {
                Mode = BasicHttpSecurityMode.Transport,
                Transport = { ClientCredentialType = HttpClientCredentialType.Certificate },
            },
        };

        var sslClientFactory = new ChannelFactory<IEchoService>(binding, "https://localhost:9876");
        sslClientFactory.Credentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
        var sslClient = sslClientFactory.CreateChannel();
        var response = sslClient.Echo("Https Echo");

我已將此證書分配給使用httpcfg的端口。

如果我將綁定從BasicHttpBinding更改為NetTcpBinding,則可以正常工作。

如果我運行我的服務的兩個實例(在一個過程中),一個使用NetTcpBinding,另一個使用BasicHttpBinding,並從net tcp客戶端和https客戶端使用它,那么兩者都可以正常工作(客戶端使用相同的證書)。

如果僅運行https客戶端,會收到“客戶端身份驗證方案'Anonymous'禁止HTTP請求”的情況?

我注意到商店中有很多加倍的證書(兩個相同證書對-具有相同的thumbrpint)(我不知道我是怎么把它們放在那里的),我認為這是一個問題。 也許當存儲中的證書加倍時,服務器僅將未加倍證書的發行者發送給客戶端?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM