2015-06-05 77 views
0

有兩個域:domainA.com和domainB.com。WCF - 覆蓋Windows身份驗證

在domainA.com中有一個wcf服務,它使用Windows身份驗證來識別用戶。

只要來自domainA的用戶使用該服務,就可以正常工作。不幸的是,來自domainB的用戶很快也需要使用這個服務,並且在從domainB賬戶連接時Windows身份驗證失敗。

是否有可能通過將其指向domainB LDAP來覆蓋Windows身份驗證? 如果沒有其他的解決方案,在這種情況下如何驗證domainB用戶?

我發現,一種靈魂將從Windows切換到UserName clientCredentialType,提示用戶輸入用戶名和密碼,然後使用自定義的UserNamePasswordValidator對domainB LDAP進行驗證。但是,如果可能,我想避免提示用戶輸入密碼。

你有什麼建議嗎?

回答

0

使用DirectoryEntry類構造函數的第一個參數是域。然後只需輸入用戶名和密碼。如果沒有域之間的信任,您必須更改要授權用戶的域的域。

如果引發異常,用戶未通過身份驗證。

using (DirectoryEntry de = new DirectoryEntry(ldap://mydomain.com:389, LDAPUser, LDAPPass, authflags)) 
{ 
    try 
    { 
     Object obj = de.NativeObject; 
    } 
    catch (Exception ex) 
    { 
     ErrorMsg = ex.Message; 
    } 
}