我使用Hosting Environment類下的DirectorySearch.FindOne()從Active Directory中檢索用戶詳細信息。它在localhost中工作正常,但是當我把它放在服務器上時,它會拋出一個錯誤。DirectorySearch.Findone()在服務器中部署時不起作用?
即使在IIS中,我已將我的ApplicationPoolIdentity更改爲Network service,但也沒有用。
我是否需要在web.config中添加其他內容才能使其正常工作。以下是我的代碼。
protected void btnSubmit_Click(object sender, EventArgs e)
{
strrUser = txtUserName.Text;
strPassword = txtPWD.Text;
role = txtRole.SelectedItem.Value;
//string selectedrole = txtRole.SelectedValue;
using (PrincipalContext pContext = new PrincipalContext(ContextType.Domain))
{
if (pContext.ValidateCredentials(strrUser, strPassword))
{
SearchResult result;
using (HostingEnvironment.Impersonate())
{
DirectorySearcher ds = new DirectorySearcher();
ds.SearchScope = SearchScope.Subtree;
ds.ReferralChasing = ReferralChasingOption.All;
ds.Filter = String.Format("(&(objectCategory=person)(sAMAccountName={0}))", strrUser);
result = ds.FindOne();
}
if (result != null)
{
DirectoryEntry entry = result.GetDirectoryEntry();
employeeID = entry.Properties["physicaldeliveryofficename"].Value.ToString();
username = entry.Properties["displayName"].Value.ToString();
}
'在服務器中拋出錯誤'錯誤是什麼? – Nathan
描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.Runtime.InteropServices.COMException:指定的域不存在或無法聯繫。 – user3585252
以上是我得到的錯誤..但根據我的知識,它試圖訪問我想要的相同somain。此外,同一組編碼正在爲另一個託管在另一個端口中同一服務器上的應用程序成功運行。但我不認爲它的端口問題作爲登錄頁面,然後主要憑證驗證使用主要上下文類ae工作良好,但不findone() – user3585252