2012-02-27 70 views
0

我正在創建一個需要代理用戶名和密碼的WCF服務,爲此我需要提供一個服務證書,我已向其提供了我們公司的Verisign證書,該證書是有效的。使用X.509證書與用戶名clientCredentialType

我遇到的問題是每當我使用以下配置時,我收到一條錯誤消息「服務證書未提供,請在ServiceCredentials中指定服務證書。」

<system.serviceModel> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" /> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="WSBehaviour"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <serviceCredentials> 
     <serviceCertificate findValue="devstage1.vcg-online.net" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="TrustedPublisher" /> 
     <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Acre.IntegrationService.CustomValidator, Acre.IntegrationService" /> 
     </serviceCredentials> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="Acre.IntegrationService.IntegrationService" behaviorConfiguration="WSBehaviour"> 

    <endpoint address="http://localhost/Acre.IntegrationService/IntegrationService.svc" 
       binding="wsHttpBinding" 
       bindingConfiguration="WSBinding" 
       contract="Acre.IntegrationService.IIntegrationService" 
       name="WS" /> 

    <endpoint address="mex" 
       binding="mexHttpBinding" 
       contract="IMetadataExchange" /> 

    </service> 
</services> 
<bindings> 
    <wsHttpBinding> 
    <binding name="WSBinding" allowCookies="false"> 
     <security mode="Message"> 
     <message clientCredentialType="UserName" negotiateServiceCredential="true" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 

更新了配置

我已經安裝使用MMC.EXE以下路徑

證書(本地計算機)/個人/證書/ 證書(在控制檯證書本地計算機)/受信任的根證書頒發機構/證書/ 證書(本地計算機)/受信任的發佈者/證書/

我已經搜索了interweb,找不到解決我的問題的明確方案。 任何人都可以幫忙嗎?

+0

注意:證書還安裝在當前用戶以及計算機下的那些位置。並已導入到IIS – 2012-02-27 11:27:11

+0

您應該指定需要使用的serviceCertificate。您是否試圖通過傳輸通道使用SSL來保護服務? – Rajesh 2012-02-27 12:39:19

+0

我在服務行爲中指定了一個證書,而對於自定義授權,是在SSL上傳輸......忽略了,我剛剛注意到我正在使用客戶端證書,我將更改它並嘗試使用 – 2012-02-27 12:58:43

回答

0

我已經設法解決這個問題,@Rajesh你是正確的clientCertificate需要是serverCertificate,更正錯誤,找不到證書,謝謝你。計算機用戶已在計算機上安裝證書。

密鑰集的問題是證書沒有爲其設置正確的帳戶權限。我更改了許可證以允許IIS_USRS訪問證書,並且現在它已修復