我正在創建一個服務來搜索LDAP中的用戶。這應該是相當直接的,並且可能已經完成了一千次,但我似乎無法正確突破。我以爲我有它,但隨後我將它部署到IIS,它都崩潰了。LDAP搜索在服務器上失敗,而在Visual Studio中失敗
以下是設置爲環境變量:
ldapController
ldapPort
adminUsername
絕對不同的用戶比誤差報告adminPassword
baseDn
並通過我的Startup.Configure方法讀入。
編輯我知道它們可用於IIS,因爲我在REST端點中返回它們。
這是我的代碼:
// Connect to LDAP
LdapConnection conn = new LdapConnection();
conn.Connect(ldapController, ldapPort);
conn.Bind(adminUsername, adminPassword);
// Run search
LdapSearchResults lsc = conn.Search(
baseDn,
LdapConnection.SCOPE_SUB,
lFilter,
new string[] { /* lots of attributes to fetch */ },
false
);
// List out entries
var entries = new List<UserDto>();
while (lsc.hasMore() && entries.Count < 10) {
LdapEntry ent = lsc.next(); // <--- THIS FAILS!
// ...
}
return entries;
正如我所說的,在Visual Studio調試這個時候,這一切工作正常。部署到IIS時,錯誤是;
登錄失敗,用戶 '域\ IIS_SERVER $'
爲什麼? adminUsername
中指定的用戶應該是用於登錄的用戶(通過conn.Bind(adminUsername, adminPassword);
),對吧?那麼爲什麼它會爆炸說明IIS用戶是進行登錄的人?
編輯我使用Novell.Directory.Ldap.NETStandard
編輯在上面的錯誤中指定的「用戶」,其實並不是一個用戶都沒有。它是運行IIS的計算機的AD註冊名稱......如果這有什麼區別的話。
UPDATE與同事協商後,我成立了一個新的應用程序池在IIS上,並試圖運行該應用程序爲指定的用戶,而不是默認passthrough
。完全相同的錯誤消息,無論我設置了哪個用戶。
'以下設置爲環境變量:'IIS用戶可以讀取這些環境變量嗎? – mjwills
製作一個只呈現環境變量的網頁。 – mjwills
絕對確定IIS可以讀取我的環境變量@mjwills。更新的問題。 –