2012-09-13 146 views
0

我的網站身份驗證有問題。使用ActiveDirectoryMembershipProvider進行Windows身份驗證

我正在構建一個網站,需要使用相同的單一登錄作爲內部網站點。

我的想法是在網站上使用Windows身份驗證來獲取用戶憑據,然後使用LDAP對我們客戶端的域控制器進行身份驗證。 有問題的網站託管在客戶端域外的服務器上。 我試過使用ActiveDirectoryMembershipProvider但我無法讓它與集成身份驗證一起工作。

我的問題是,我不能讓Windows身份驗證使用LDAP作爲成員資格提供程序。目前,Windows身份驗證獲取用戶憑據,並嘗試對計算機上的用戶進行身份驗證,並且由於Web服務器不在域上而失敗。我想獲取憑據並使用LDAP將它們發送到將對其進行身份驗證的域控制器。

有沒有一種方法可以做集成身份驗證使用和LDAP連接進行身份驗證?

+0

當您運行Solution Local時,使用Windows身份驗證可以正常工作嗎? – RL89

+0

是的,Intranet上的Windows身份驗證正常工作。問題是沒有讓Windows身份驗證正常工作,它使用ActiveDirectoryMembershipProvider和指定的LDAP服務器驗證其身份驗證,以驗證其憑據,而不是僅僅關閉並檢查其標準用戶列表。 – zeocrash

+0

問題是什麼den?您是否想知道如何使用LDAP連接與Active Directory Server通信? – RL89

回答

1

更新

如果你的網站是客戶域之外的服務器上承載則無法獲得用戶認證。

因爲當你發送憑證到託管服務器有一個位置對象在域服務器,它會嘗試尋找指定用戶首先在本地,你必須託管在您的網站,然後到Doamin服務器已在位置指定(雖然我們也可以設置優先級)

如果沒有發現任何用戶在本地,然後

之後,它會發送請求到域服務器與那些憑證

在你的情況下,首先它不會發現域名服務器名稱在你想要它與之通信的位置對象中。

對於前:

PrincipalContext pr = new PrincipalContext(ContextType.Domain, "corp.local", "dc=corp,dc=local", username, password); 

這裏Corp.Local是域名這是我Location對象用戶名和具有編輯/更新管理權限的用戶的密碼 /刪除域服務器中的任何用戶。

所以整個過程再次進入,並在指定域服務器的位置找到對象話反而會使得與溝通和產生TOKEN

的僅適用於你的情況的解決方案是需要將所有用戶從客戶端服務器複製到域服務器,否則需要在兩個域服務器之間建立信任關係。

希望這是你在找什麼。

+1

以獲取user.identity.name,請勿用戶需要已經認證? – zeocrash

+0

@zeocrash實際上取決於。在我的情況下,我的用戶已經登錄到域中,我在這裏檢查的是我們的Active Directory服務器中該域ID是啓用還是不存在。請在此處提及您的代碼或您遇到的錯誤。 – RL89

+0

我的問題是,我不能讓Windows身份驗證使用LDAP作爲成員資格提供程序。目前,Windows身份驗證獲取用戶憑據,嘗試對其進行身份驗證,並且由於Web服務器不在域上而失敗。我想獲取憑據並使用LDAP將它們發送到將對其進行身份驗證的域控制器。 – zeocrash