簡體   English   中英

.Net的目錄服務引發了一個奇怪的例外

[英].Net's Directory Services throws a strange exception

我有一個用於檢查用戶憑據的小型C#解決方案。 它適用於我的兩個隊友,但在我的電腦上我得到了一個例外。

相關代碼:

PrincipalContext context = new PrincipalContext(ContextType.Domain);
if (context.ValidateCredentials(System.Environment.UserDomainName + "\\" + usr, pwd))
     return true;
else
     return false;

例外是:

DirectoryOperationException,“服務器無法處理目錄請求。”。

我嘗試使用顯式服務器名稱和636端口號創建上下文,但這也沒有幫助。

有任何想法嗎?

我也使用IIS Express和VS 2010解決了這個問題。為我修復的是對另一個線程的評論。

驗證Active Directory的用戶名和密碼?

但我會保存你的點擊和搜索... :)只需將ContextOpations.Negotiate添加到你驗證如下所示的憑據調用。

bool valid = context.ValidateCredentials(user, pass, ***ContextOptions.Negotiate***);

我有這個問題:我的開發機器上的東西正在工作但是在服務器上沒有工作。 原來,服務器上的IIS設置為以LocalMachine身份運行。 我把它改為NetworkService(默認),事情就開始了。

所以基本上檢查應用程序池的用戶是否在IIS上運行。

我不得不創建一個新的應用程序池並將其分配給.NET 2.0,然后將新的應用程序池分配給我們的Web應用程序,它開始工作。 我們有.NET 3.5 SP2,所以這個修補程序對我們來說並不理想。 由於WWW服務通常是Local System,我也對此提出質疑。 但由於它與.NET和安全相關,我先在應用程序池中進行了一次嘗試,然后才有效。

也許你需要這個修補程序?

您是管理員或運行您的服務的ID是PC上的管理員嗎?

我認為你已經調查了這個:

“你可能會收到一個不太有用的DirectoryOperationException(”服務器無法處理目錄請求。“)對此不太有趣的是它甚至沒有嘗試與服務器通信。解決方案是添加端口因此,我沒有通過“Server”來打開LdapConnection,而是通過“server:636”。順便說一下,LDAPS是端口636 - 而不是LDAP使用的389端口。“


好的,我不希望Win7 / .NET 3.5需要那個補丁。 如何在這個問題中提供的信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM