2012-07-30 14 views
-1

WCF服務,我有窗戶認證WCF的Web服務。如何通過額外的數據與Windows認證(認證過程中)

綁定

<bindings> 
    <netTcpBinding> 
    <binding name="CommonWindowsBinding" maxReceivedMessageSize="40000000" > 
     <security mode="Transport"> 
     <transport clientCredentialType="Windows" /> 
     </security> 
    </binding> 
    </netTcpBinding> 

</bindings> 

端點

<endpoint address="Windows" 
       binding="netTcpBinding" 
       bindingConfiguration="CommonWindowsBinding" 
       name="MyNameSpace.Contracts.ISimplePluginServiceWindows" 
       contract="MyNameSpace.Contracts.ISimplePluginService"> 
     <identity> 
     <dns value="WCfServer" /> 
     </identity> 
    </endpoint> 

我想通過更多的信息,此類認證服務類型(我通過檢查MS SQL Server的用戶和登錄檢查AUTH - 我需要通過MSSQL服務器名稱和數據庫名稱)。所以,我必須將一些自定義數據傳遞給驗證器=>我必須爲Windows驗證創建自定義驗證器。我該怎麼做?我找不到任何例子。

用戶名認證的,我可以用CustomUserNameValidator(通過與登錄服務器地址和數據庫名稱),它繼承UserNamePasswordValidator做到這一點。

回答

0

我意識到,那是錯誤的做法。

  1. 我可以使用代表團authentificate與來自WCF服務的當前Windows用戶的憑據MSSQL服務器 - http://msdn.microsoft.com/en-en/library/ms730088.aspx

  2. 如果所必要的傳遞其他數據(如服務器名和數據庫名),這樣的應在服務合同中採用特殊方法採取行動。

1

Windows身份驗證是Windows(如Kerberos的)。如果你想做你自己的認證,然後使用密碼,但我不認爲它會讓你傳遞額外的信息。你真的想將服務器地址和數據庫名稱傳遞給服務器?

Selecting a Credential Type