Active Directory 認証を実装しようとしていますが、次のような例外が発生しています
System.Runtime.InteropServices.COMException was caught
Message=Unknown error (0x80005000)
Source=System.DirectoryServices
ErrorCode=-2147463168
StackTrace:
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
at System.DirectoryServices.DirectorySearcher.FindOne()
at ConsoleApplication1.ADAuthentication.AuthenticateADUsers(String userNameWithDomain, String password) in C:\Users\awadhendrat\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 83
at ConsoleApplication1.Program.Main(String[] args) in C:\Users\awadhendrat\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 23
InnerException:
何が欠けているのかわからない。AD認証を実装するために私が書いた次のコード。
public bool AuthenticateADUsers(string userNameWithDomain, string password)
{
DirectoryEntry objDirectoryEntry = null;
DirectorySearcher objDirectorySearcher = null;
try
{
objDirectoryEntry = new DirectoryEntry("https://ab.hotels.com/", userNameWithDomain, password, AuthenticationTypes.Delegation);
objDirectorySearcher = new DirectorySearcher(objDirectoryEntry);
objDirectorySearcher.Filter = string.Format("(&(objectClass=user)(objectCategory=user) (sAMAccountName={0}))", userNameWithDomain.Substring(0, userNameWithDomain.IndexOf('@')));
objDirectorySearcher.PropertiesToLoad.Add("msRTCSIP-PrimaryUserAddress");
var result = objDirectorySearcher.FindOne();
if (result != null)
return true;
else
return false;
}
catch
{
throw;
}
}
私はいくつかのグーグルをしましたが、役に立ちません。ここでは、彼らが LDAP://somedomain/ と書いた場所のように混乱することはほとんどありませんが、ここではhttps://somedomain.comを持っています。別の混乱は、テスト アプリケーションが 1 つのドメインにあり、提供されたドメインが別のサーバーにあることです。
AD 認証に使用されるクライアントから提供されたリンクを開くと、Open Office Web Access が開きます。
この問題を解決する方法がわかりません。
ありがとう。